用binding写一个底部导航栏,在底部导航栏主页用binding绑定ListView
时间: 2024-04-30 09:20:20 浏览: 80
首先,我们需要在布局文件中定义底部导航栏和ListView:
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- 底部导航栏 -->
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/bottom_navigation_menu" />
<!-- ListView -->
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
```
接下来,在Activity中使用DataBinding进行绑定:
```
public class MainActivity extends AppCompatActivity {
private ActivityMainBinding binding;
private List<String> dataList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 使用DataBinding绑定布局文件
binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
// 初始化ListView数据
for (int i = 0; i < 20; i++) {
dataList.add("Item " + i);
}
// 设置ListView的适配器
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);
binding.listView.setAdapter(adapter);
// 设置底部导航栏的监听器
binding.bottomNavigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_home:
// 点击了主页
binding.listView.setVisibility(View.VISIBLE);
break;
case R.id.menu_search:
// 点击了搜索
binding.listView.setVisibility(View.GONE);
break;
case R.id.menu_profile:
// 点击了个人中心
binding.listView.setVisibility(View.GONE);
break;
}
return true;
}
});
}
}
```
这样,在底部导航栏选中主页时,ListView将会显示出来,选中其他项时,则会隐藏。注意,在使用DataBinding时,需要在布局文件的根节点上添加 `<layout>` 标签。
阅读全文