android Material Design 底部导航栏
实现效果
配置gradle依赖
1 | compile 'com.android.support:appcompat-v7:25.1.0' |
使用BottomNavigationView
1 | <?xml version="1.0" encoding="utf-8"?> |
res/menu/nav_bottom_item.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
src/MainActivity.java
@BindView这注解依赖ButterKnife,这个不必理会1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25@BindView(R.id.nav_bottom)
protected BottomNavigationView navBottom;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
navBottom.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.menu_pk:
Toast.makeText(MainActivity.this, "PK", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_home:
Toast.makeText(MainActivity.this, "主页", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_mine:
Toast.makeText(MainActivity.this, "我的", Toast.LENGTH_SHORT).show();
break;
}
return false;
}
});
}
注意
盲目照抄android官方文档带来的问题
以下是官方文档抄过来的,有点问题
问题在这一句代码
xmlns:design=”http://schema.android.com/apk/res/android.support.design“
正确的代码是
xmlns:app=”http://schemas.android.com/apk/res-auto“
1 | layout resource file: |
这个代码不会报错,但是XML布局预览无任何效果,暂时不知道是什么原因。
问题总结
viewpager的滚动监听和bottomNavigationView有关系么,为什么没有viewpager的滚动监听会影响到bottomNavigationView,使bottomNavigationView只有点击事件,没有选中改变按钮颜色呢,难道是viewpager的滚动监听的配置增加了焦点,好像也不对,如果没有焦点,bottomNavigationView也就不能点击