Android应用开发Android:BottomNavigationBar如何实现底部导航栏
白羽 2019-05-20 来源 :网络 阅读 1586 评论 0

摘要:本文将带你了解Android应用开发Android:BottomNavigationBar如何实现底部导航栏,希望本文对大家学Android有所帮助。

    本文将带你了解Android应用开发Android:BottomNavigationBar如何实现底部导航栏,希望本文对大家学Android有所帮助。


Android应用开发Android:BottomNavigationBar如何实现底部导航栏


1.BottomNavigationBar的下载地址
    2.使用的方法
    2.1在Gradle中添加
    compile ‘com.ashokvarma.android:bottom-navigation-bar:0.9.5’
   
    2.2布局实现

   

  • 1

  • 2

  • 3

  • 4

  • 5


    2.3类中Activity中添加BottomNavigationItem

    BottomNavigationBar bottomNavigationBar = (BottomNavigationBar)   findViewById(R.id.bottom_navigation_bar);
     
    bottomNavigationBar
                    .addItem(new   BottomNavigationItem(R.drawable.ic_home_white_24dp, Home))
                    .addItem(new   BottomNavigationItem(R.drawable.ic_book_white_24dp, Books))
                    .addItem(new   BottomNavigationItem(R.drawable.ic_music_note_white_24dp, Music))
                    .addItem(new   BottomNavigationItem(R.drawable.ic_tv_white_24dp, Movies & TV))
                    .addItem(new   BottomNavigationItem(R.drawable.ic_videogame_asset_white_24dp, Games))
                    .initialise();
    2.4设置事件监听器TabChangeListener

    bottomNavigationBar.setTabSelectedListener(new   BottomNavigationBar.OnTabSelectedListener(){
               @Override
               public void   onTabSelected(int position) {
               }
               @Override
               public void onTabUnselected(int   position) {]
               }
               @Override
               public void   onTabReselected(int position) {
               }
           });
    3.展示
    MODE_FIXED+BACKGROUND_STYLE_STATIC效果
   
    \
   
    DE_FIXED+BACKGROUND_STYLE_RIPPLE效果
   
    \
   
    MODE_SHIFTING+BACKGROUND_STYLE_STATIC效果
   
    \
   
     
   
    MODE_SHIFTING+BACKGROUND_STYLE_RIPPLE效果
   
    \
   
    4.代码实现
    package com.android.xiaobai;
     
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentTransaction;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
     
    import com.ashokvarma.bottomnavigation.BottomNavigationBar;
    import com.ashokvarma.bottomnavigation.BottomNavigationItem;
     
    import java.util.ArrayList;
     
    import fragment.ContactsFragment;
    import fragment.DongtaiFragment;
    import fragment.MsgFragment;
     
    /**
     * Created by xiaobai on   2018/1/31/031.
     */
     
    public class MessageActivity extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener   {
        private ArrayList

  fragments;
        private BottomNavigationBar   bottomNavigationBar;
        private MsgFragment   msgFragment;
        private ContactsFragment   contactsFragment;
        private DongtaiFragment   dongtaiFragment;
        private FragmentManager   fragmentManager;
        private FragmentTransaction   transaction;
        int lastSelectedPosition =   0;
     
        @Override
        protected void onCreate(@Nullable   Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activty_message);
     
            bottomNavigationBar =   findViewById(R.id.bottom_navigation_bar);
            init();
        }
     
        private void init() {
            //要先设计模式后再添加图标!
            //设置按钮模式  MODE_FIXED表示固定   MODE_SHIFTING表示转移
              bottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);
            //设置背景风格
            //   BACKGROUND_STYLE_STATIC表示静态的
              //BACKGROUND_STYLE_RIPPLE表示涟漪的,也就是可以变化的 ,跟随setActiveColor里面的颜色变化
              bottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE);
            //添加并设置图标、图标的颜色和文字
            bottomNavigationBar
                    .addItem(new   BottomNavigationItem(R.drawable.im_botton_message,   消息)).setActiveColor(R.color.blue)
                    .addItem(new   BottomNavigationItem(R.drawable.im_botton_contacts,   联系人)).setActiveColor(R.color.red)
                    .addItem(new   BottomNavigationItem(R.drawable.im_botton_dongtai,   动态)).setActiveColor(R.color.orign)
                      .setFirstSelectedPosition(lastSelectedPosition )
                    .initialise();
     
              bottomNavigationBar.setTabSelectedListener(this);
            setDefaultFragment();
        }
     
        //设置初始界面
        private void setDefaultFragment()   {
            fragmentManager = getSupportFragmentManager();
            transaction =   fragmentManager.beginTransaction();
              transaction.replace(R.id.layFrame, MsgFragment.newInstance(消息));
            transaction.commit();
        }
     
        @Override
        public void onTabSelected(int   position) {
            fragmentManager =   getSupportFragmentManager();
            transaction = fragmentManager.beginTransaction();
            switch (position) {
                case 0:
                    if (msgFragment ==   null) {
                        msgFragment =   MsgFragment.newInstance(位置);
                    }
                    transaction.replace(R.id.layFrame,   msgFragment);
                    break;
                case 1:
                    if (contactsFragment   == null) {
                        contactsFragment   = ContactsFragment.newInstance(位置);
                    }
                    transaction.replace(R.id.layFrame,   contactsFragment);
                    break;
                case 2:
                    if (dongtaiFragment   ==    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程