bottomnavigationview 代码
时间: 2023-09-01 16:11:40 浏览: 41
下面是一个示例代码,演示如何使用 BottomNavigationView:
1. 在 XML 布局文件中添加 BottomNavigationView:
```
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:menu="@menu/bottom_navigation_menu" />
```
2. 创建一个 menu 资源文件,用于配置 BottomNavigationView 的选项卡。例如,创建一个名为 bottom_navigation_menu.xml 的文件,其中包含以下代码:
```
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home" />
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard" />
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications" />
</menu>
```
3. 在 Activity 或 Fragment 中初始化 BottomNavigationView,并设置选项卡的点击事件:
```
BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
// 处理 Home 选项卡点击事件
return true;
case R.id.navigation_dashboard:
// 处理 Dashboard 选项卡点击事件
return true;
case R.id.navigation_notifications:
// 处理 Notifications 选项卡点击事件
return true;
}
return false;
}
});
```
4. 在处理选项卡点击事件时,您可以使用 FragmentTransaction 切换不同的 Fragment,或者更新 RecyclerView 的内容。例如:
```
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
switch (item.getItemId()) {
case R.id.navigation_home:
HomeFragment homeFragment = new HomeFragment();
transaction.replace(R.id.fragment_container, homeFragment);
transaction.commit();
return true;
case R.id.navigation_dashboard:
DashboardFragment dashboardFragment = new DashboardFragment();
transaction.replace(R.id.fragment_container, dashboardFragment);
transaction.commit();
return true;
case R.id.navigation_notifications:
// 更新 RecyclerView 的内容
return true;
}
```