Android用BottomNavigationBar实现底部导航栏
时间: 2024-01-24 19:17:45 浏览: 156
Android使用BottomNavigationBar实现底部导航栏
Android中可以使用BottomNavigationBar实现底部导航栏。下面简单介绍一下实现方法。
1. 添加依赖库
在app的build.gradle中添加如下依赖:
```
implementation 'com.aurelhubert:ahbottomnavigation:2.1.0'
```
2. 在布局文件中添加BottomNavigationBar控件
```
<com.aurelhubert.ahbottomnavigation.AHBottomNavigation
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:ah_bottom_navigation_active_item_color="@color/colorPrimary"
app:ah_bottom_navigation_inactive_item_color="@android:color/darker_gray"
app:ah_bottom_navigation_background_color="@android:color/white"
app:ah_bottom_navigation_title_state="always_show"
app:ah_bottom_navigation_use_theme_colors="false" />
```
其中,ah_bottom_navigation_active_item_color表示选中的item颜色,ah_bottom_navigation_inactive_item_color表示未选中的item颜色,ah_bottom_navigation_background_color表示BottomNavigationBar的背景色。
3. 创建Fragment
在MainActivity中创建不同的Fragment用于点击不同的BottomNavigationBar item时显示不同的内容。
4. 设置BottomNavigationBar的item
在MainActivity中设置BottomNavigationBar的item,并为每个item绑定对应的Fragment。
```
private void setupBottomNav() {
AHBottomNavigationItem item1 = new AHBottomNavigationItem(R.string.tab_1, R.drawable.ic_home_black_24dp, R.color.colorPrimary);
AHBottomNavigationItem item2 = new AHBottomNavigationItem(R.string.tab_2, R.drawable.ic_search_black_24dp, R.color.colorPrimary);
AHBottomNavigationItem item3 = new AHBottomNavigationItem(R.string.tab_3, R.drawable.ic_settings_black_24dp, R.color.colorPrimary);
bottomNavigation.addItem(item1);
bottomNavigation.addItem(item2);
bottomNavigation.addItem(item3);
bottomNavigation.setDefaultBackgroundColor(Color.WHITE);
bottomNavigation.setBehaviorTranslationEnabled(false);
bottomNavigation.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() {
@Override
public boolean onTabSelected(int position, boolean wasSelected) {
if (!wasSelected) {
switch (position) {
case 0:
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, new Fragment1()).commit();
break;
case 1:
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, new Fragment2()).commit();
break;
case 2:
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, new Fragment3()).commit();
break;
}
}
return true;
}
});
}
```
其中,AHBottomNavigationItem的构造函数参数分别为item的标题、图标和选中时的颜色。
5. 完成效果
运行程序即可看到底部导航栏的效果。
阅读全文