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

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

 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.     }  

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

责任编辑:庞桂玉 来源: segmentfault
相关推荐

2016-12-07 10:27:16

移动应用开发底部导航android

2016-12-07 10:32:14

移动应用开发底部导航android

2016-12-07 10:58:35

移动应用开发底部导航android

2016-12-07 10:02:54

移动应用开发底部导航android

2022-08-08 19:46:26

ArkUI鸿蒙

2021-01-28 06:11:40

导航组件Sidenav Javascript

2023-10-23 08:48:04

CSS宽度标题

2022-11-15 18:31:37

React

2021-08-02 09:11:39

底部导航产品Tab Bar

2009-06-24 09:36:52

XML实现breadcMVC

2023-06-06 15:38:28

HTMLCSS开发

2020-11-23 14:29:22

Android 10窗口代码

2017-02-17 11:00:57

状态栏Android

2022-07-15 16:39:46

ETS导航栏组件

2013-01-14 17:05:55

UCUI设计菜单栏

2022-02-11 14:48:57

Chrome谷歌下载栏

2015-07-30 14:43:04

导航栏iOS开发

2012-04-28 11:07:15

2018-04-15 15:51:21

Android P安卓系统谷歌

2024-08-29 08:13:58

点赞
收藏

51CTO技术栈公众号