BottomNavigationBar使用方法

本文介绍了如何使用三方库BottomNavigationBar,通过Gradle引入并展示了XML配置。在fixed模式下实现底部导航栏,强调了fixed_height和bottom_navigation_height的设置,并提到fixed_label_active_to_inactive_ratio=1可防止图标缩放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转发 这篇文章有角标的使用方式

使用三方BottomNavigationBar

gradle

    implementation 'com.ashokvarma.android:bottom-navigation-bar:2.1.0'

xml

 <com.ashokvarma.bottomnavigation.BottomNavigationBar
            android:id="@+id/bnb"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toTopOf="@id/bvn"
            app:layout_constraintStart_toStartOf="parent"
            app:bnbActiveColor="#3A97FF"
            app:bnbInactiveColor="#888888"
            app:bnbBackgroundStyle="background_style_static"
            app:bnbMode="mode_fixed"
            />

使用fixed模式实现简单的bottombar,注意fixed_height和bottom_navigation_height需要同时设置。
fixed_label_active_to_inactive_ratio = 1是不进行icon缩放
dimens.xml

    <!--bottomNavigationTab-->
    <dimen name="bottom_navigation_height">49dp</dimen>
    <dimen name="fixed_height">49dp</dimen>
    <dimen name="fixed_height_top_padding_inactive">0dp</dimen>
    <dimen name="fixed_height_top_padding_active">0dp</dimen>
    <dimen name="fixed_height_bottom_padding">4dp</dimen>
    <dimen name="fixed_label_active">10sp</dimen>
    <dimen name="fixed_label_inactive">10sp</dimen>
    <item name="fixed_label_active_to_inactive_ratio" format="float" type="dimen">1</item>

Activity

mBinding.bnb.addItem(new BottomNavigationItem(R.mipmap.tab_home_sec,R.string.mainpage).setInactiveIconResource(R.mipmap.tab_home_nor))
                .addItem(new BottomNavigationItem(R.mipmap.tab_find_sec,R.string.found).setInactiveIconResource(R.mipmap.tab_find_nor))
                .addItem(new BottomNavigationItem(R.mipmap.tab_news_sec,R.string.message).setInactiveIconResource(R.mipmap.tab_news_nor))
                .addItem(new BottomNavigationItem(R.mipmap.tab_my_sec,R.string.mine).setInactiveIconResource(R.mipmap.tab_my_nor)).initialise();
        mBinding.bnb.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener() {
            @Override
            public void onTabSelected(int position) {
                switch (position){
                    case 0:
                        mBinding.vp.setCurrentItem(0);
                        break;
                    case 1:
                        mBinding.vp.setCurrentItem(1);
                        break;
                    case 2:
                        mBinding.vp.setCurrentItem(2);
                        break;
                    case 3:
                        mBinding.vp.setCurrentItem(3);
                        break;
                }
            }

            @Override
            public void onTabUnselected(int position) {

            }

            @Override
            public void onTabReselected(int position) {

            }
        });
        mBinding.vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
                //将滑动到的页面对应的 menu 设置为选中状态
                mBinding.bnb.selectTab(i);
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值