BottomNavigationView 很早之前就在 Material Design 中出现了,但是直到 Android Support Library 25 中才增加了 BottomNavigationView 控件。
该控件使用方法如下:
- 在 build.gradle 文件中增加依赖:
1 | compile 'com.android.support:design:25.0.0' |
- 在 res/menu/ 目录下创建一个 xml 文件(没有该目录则手动创建一个),我将其命名为 navigation.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
在布局文件中添加如下代码即可:
1 | <android.support.design.widget.BottomNavigationView |
注意这里的 app:menu="@menu/navigation"
引用了刚才创建的菜单文件。
最后,在代码中添加 BottomNavigationView 的事件监听:
1 | navigationView.setOnNavigationItemSelectedListener( |
这样就完成了一个简单的 BottomNavigationView 控件。该控件有几个地方需要注意的:
- 底部导航栏高度默认是 56dp。
- 菜单元素只能是 3~5 个。如果个数少于3个或者多于5个,则会报错。
- icon 的选中颜色默认是
@color/colorPrimary
。当然你也可以使用app:itemIconTint="@android:color/white"
来自定义,这样定以后,所有的 icon 颜色都是这个了。 - 菜单元素文字的默认颜色是
@color/colorPrimary
。你可以使用app:itemTextColor="@android:color/white"
自定义。 - 底部导航栏背景颜色默认是当前样式的背景色(白色/黑色),你可以使用
app:itemBackground="@android:color/black"
来更改。
写个具体的例子吧。比如新建一个项目,activity_main.xml 布局如下:
1 | <?xml version="1.0" encoding="utf-8"?> |
菜单文件还是沿用开始创建的那个文件(图片资源自己添加)。MainActivity.java 代码如下:
1 | public class MainActivity extends AppCompatActivity { |
运行效果如下图: