Android开发快速实现底部导航栏示例
目录
- Tint 着色器
- 依赖(AndroidX)
- 布局
- 编写渲染颜色选择器-tint_selector_menu_color
- menu 文件中 icon-nav_bottom_menu
- BottomNavigationView的点击事件
- 配合ViewPager实现Tab栏
- 对应的适配器
Tint 着色器 优点:去除“无用”图片,节省空间
配合BottomNavigationView,实现一个快速,简洁的Tab栏
传统做法:Tab 切换,字体变色、图片变色。至少给我提供八张图,四张默认,四张选中,然后通过 selector 文件设置
现在BottomNavigationView只需四张图!!!
文章图片
文章图片
依赖(AndroidX)
implementation 'com.google.android.material:material:1.1.0-alpha01'
布局
【Android开发快速实现底部导航栏示例】
编写渲染颜色选择器-tint_selector_menu_color
menu 文件中 icon-nav_bottom_menu
BottomNavigationView的点击事件
这里配合Fragmen
/* Menu显示彩色图标 *///navBottomMenu.setItemIconTintList(null); /* 导航栏点击事件 */navBottomMenu.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {@Overridepublic boolean onNavigationItemSelected(@NonNull MenuItem item) {switch (item.getItemId()) {case R.id.iv_home: {FragmentManager.startFragmentHome(Fragment_A.class); return true; }case R.id.iv_wechat: {FragmentManager.startFragmentHome(Fragment_B.class); return true; }case R.id.iv_pipi: {FragmentManager.startFragmentHome(Fragment_C.class); return true; }case R.id.iv_mine: {FragmentManager.startFragmentHome(Fragment_D.class); return true; }default:break; }return false; }});
配合ViewPager实现Tab栏
/* 限制页面数,防止界面反复重新加载*/viewPager.setOffscreenPageLimit(4); // ViewPager 滑动事件监听viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int i, float v, int i1) {}@Overridepublic void onPageSelected(int i) {//这里我做了中间凹凸按钮,所以要特别处理以下//如果没有我这种情况的,直接加上这个navBottomMenu.getMenu().getItem(i).setChecked(true); 就不用再加switch语句了switch (i) {case 0://将滑动到的页面对应的 menu 设置为选中状态navBottomMenu.getMenu().getItem(i).setChecked(true); break; case 1://将滑动到的页面对应的 menu 设置为选中状态navBottomMenu.getMenu().getItem(i).setChecked(true); break; case 2:case 3://将滑动到的页面对应的 menu 设置为选中状态navBottomMenu.getMenu().getItem(i + 1).setChecked(true); break; default:break; }}@Overridepublic void onPageScrollStateChanged(int i) {}}); }
对应的适配器
(仅供参考,大家也可以去参考以下别人写的代码)
public class FragPagerAdapter extends FragmentPagerAdapter {private ListfragmentList; public FragPagerAdapter(@NonNull FragmentManager fm, List fragmentList) {super(fm); this.fragmentList = fragmentList; }@Overridepublic Fragment getItem(int position) {return fragmentList.get(position); }@Overridepublic int getCount() {return fragmentList.size(); }}
BottomNavigationView实现的Tab栏,比自己以前写的代码更加简洁明了!!!
以上就是Android开发快速实现底部导航栏示例的详细内容,更多关于Android底部导航栏的资料请关注脚本之家其它相关文章!
推荐阅读
- Android界面一键变灰开发深色适配模式编程示例
- Android Fingerprint系列之google原生界面
- Android6.0------权限申请~easypermissions
- Android Runtime.getRuntime().exec
- Android App压力测试之Monkey
- Android基础系列合集
- 完整Android开发基础入门博客专栏
- Android Studio环境解读
- Android应用层View绘制流程与源码分析
- Android 菜单动态变化添加或去除