|
|
|
|
移动端

Android底部导航栏实现(一)之BottomNavigationBar

这几篇文章没有过多的文字叙述,因为这些东西也不是很难,而且都是常用的,相信很多人都了如指掌了,多说亦是废话,直接上代码看的反而更清楚。

作者:K_J来源:segmentfault|2016-12-07 10:18

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


BottomNavigationBar这个控件的使用之前已经写过,这里不再赘述,详情请参考BottomNavigationBar的使用

下面直接上代码:

初始化及相关设置:

  1. mBottomNavigationBar = (BottomNavigationBar) view.findViewById(R.id.bottom_navigation_bar); 
  2. mBottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC); 
  3. mBottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED); 
  4.  
  5. mBottomNavigationBar.addItem(new BottomNavigationItem(R.drawable.home_fill, getString(R.string.item_home)).setInactiveIconResource(R.drawable.home).setActiveColorResource(R.color.colorPrimary).setInActiveColorResource(R.color.black_1)) 
  6.         .addItem(new BottomNavigationItem(R.drawable.location_fill, getString(R.string.item_location)).setInactiveIconResource(R.drawable.location).setActiveColorResource(R.color.colorPrimary).setInActiveColorResource(R.color.black_1)) 
  7.         .addItem(new BottomNavigationItem(R.drawable.like_fill, getString(R.string.item_like)).setInactiveIconResource(R.drawable.like).setActiveColorResource(R.color.colorPrimary).setInActiveColorResource(R.color.black_1)) 
  8.         .addItem(new BottomNavigationItem(R.drawable.person_fill, getString(R.string.item_person)).setInactiveIconResource(R.drawable.person).setActiveColorResource(R.color.colorPrimary).setInActiveColorResource(R.color.black_1)) 
  9.         .setFirstSelectedPosition(0) 
  10.         .initialise(); 
  11.  
  12. mBottomNavigationBar.setTabSelectedListener(this); 
  13.  
  14. setDefaultFragment(); 

Tab的切换:

  1. @Override 
  2.     public void onTabSelected(int position) { 
  3.         FragmentTransaction beginTransaction = getFragmentManager().beginTransaction(); 
  4.  
  5.         switch (position) { 
  6.             case 0: 
  7.                 if (mHomeFragment == null) { 
  8.                     mHomeFragment = HomeFragment.newInstance(getString(R.string.item_home)); 
  9.                 } 
  10.                 beginTransaction.replace(R.id.sub_content, mHomeFragment); 
  11.                 break; 
  12.             case 1: 
  13.                 if (mLocationFragment == null) { 
  14.                     mLocationFragment = LocationFragment.newInstance(getString(R.string.item_location)); 
  15.                 } 
  16.                 beginTransaction.replace(R.id.sub_content, mLocationFragment); 
  17.                 break; 
  18.             case 2: 
  19.                 if (mLikeFragment == null) { 
  20.                     mLikeFragment = LikeFragment.newInstance(getString(R.string.item_like)); 
  21.                 } 
  22.                 beginTransaction.replace(R.id.sub_content, mLikeFragment); 
  23.                 break; 
  24.             case 3: 
  25.                 if (mPersonFragment == null) { 
  26.                     mPersonFragment = PersonFragment.newInstance(getString(R.string.item_person)); 
  27.                 } 
  28.                 beginTransaction.replace(R.id.sub_content, mPersonFragment); 
  29.         } 
  30.         beginTransaction.commit(); 
  31.  
  32.     }  

说明:这几篇文章没有过多的文字叙述,因为这些东西也不是很难,而且都是常用的,相信很多人都了如指掌了,多说亦是废话,直接上代码看的反而更清楚。

【编辑推荐】

  1. Android Studio + smalidea进行smail动态调试
  2. Android应用内存泄漏的定位、分析与解决策略
  3. 基于Java Socket的自定义协议,实现Android与服务器的长连接(一)
  4. 基于Java Socket的自定义协议,实现Android与服务器的长连接(二)
  5. 五种方式实现Android底部导航栏
【责任编辑:枯木 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

SQL应用与开发标准教程

本书主要介绍了SQL的数据库应用和开发技术,内容涉及关系数据库和SQL概述,SQL环境,SQL对于数据表的操作,数据库查询知识,SQL数据的修改...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊