您的位置:首页 > 移动开发 > Android开发

Android学习Material design中的底部导航栏BottomNavigationBar

2017-01-04 16:18 786 查看
  今天写项目的之于看了一下material Design关于底座图标BottomNacigationBar的介绍,网上的资料已经很详细了,在此留下记录便于以后查找.

  首先要添加项目依赖  

compile 'com.ashokvarma.android:bottom-navigation-bar:1.3.1'

我们也可以点击file选中Project Structure ,然后选择Dependencies,点击那个绿色的加号就可以搜索我们需要的依赖了,输入关键字选择即可.

  项目开始首先是一个很简单的XML界面

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<LinearLayout
android:id="@+id/tb"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />

<com.ashokvarma.bottomnavigation.BottomNavigationBar
android:id="@+id/bottom_navigation_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
/>
</RelativeLayout>


public class FindResourceActivity extends BaseActivity implements BottomNavigationBar.OnTabSelectedListener {

private BottomNavigationBar bar;
private ExpertFragment expertFragment;
private AgentFragment agentFragment;
private BuyFragment buyFragment;
private InstitutionFragment institutionFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_findresource);

bar = (BottomNavigationBar) findViewById(R.id.bottom_navigation_bar);
bar.setMode(BottomNavigationBar.MODE_SHIFTING);//点击模式
bar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);
bar.addItem(new BottomNavigationItem(R.mipmap.home, "科研机构")).setActiveColor(R.color.color_6a6a6a).
addItem(new BottomNavigationItem(R.mipmap.message, "专家个人")).setActiveColor(R.color.color_F90202).
addItem(new BottomNavigationItem(R.mipmap.custom, "中介机构")).setActiveColor(R.color.main_tab_indicator_color).
addItem(new BottomNavigationItem(R.mipmap.mine, "技术供需")).setActiveColor(R.color.color_79c051).setFirstSelectedPosition(0).initialise();
bar.setTabSelectedListener(this);
setDefaultFragment();
}

/**
* 设置默认的
*/
private void setDefaultFragment() {
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
expertFragment = ExpertFragment.newInstance("科研机构");
transaction.replace(R.id.tb,expertFragment);
transaction.commit();
}

@Override
public void onTabSelected(int position) {
FragmentManager fm = this.getFragmentManager();
//开启事务
FragmentTransaction transaction = fm.beginTransaction();
switch (position) {
case 0:
if (institutionFragment == null) {
institutionFragment = InstitutionFragment.newInstance("科研机构","");
}
transaction.replace(R.id.tb, institutionFragment);
break;
case 1:
if (expertFragment == null) {
expertFragment = ExpertFragment.newInstance("专家个人");
}
transaction.replace(R.id.tb, expertFragment);
break;
case 2:
if (agentFragment == null) {
agentFragment = AgentFragment.newInstance("中介机构","");
}
transaction.replace(R.id.tb, agentFragment);
break;
case 3:
if (buyFragment == null) {
buyFragment = BuyFragment.newInstance("技术供需","");
}
transaction.replace(R.id.tb, buyFragment);
break;
default:
break;
}
// 事务提交
transaction.commit();
}

@Override
public void onTabUnselected(int position) {

}

@Override
public void onTabReselected(int position) {

}


以上就是java代码具体实现,感觉没什么可说的...构建自己需要的Fragment添加就可以了, 我是添加了4个Fragment,需要注意Fragment引入的包必须是App的不可以是V4包.

操作简单使用方便.

下载地址 http://download.csdn.net/detail/hui9520/9729324
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android 底部导航栏