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

来源:互联网 发布:好用的编程工具 编辑:程序博客网 时间:2024/05/20 18:02

  今天写项目的之于看了一下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包.

操作简单使用方便.

1 0
原创粉丝点击