设为首页收藏本站

恒泰软件,必属精品

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2572|回复: 0

去除BottomNavigationView的Item大于3个时的动画效果

[复制链接]

189

主题

199

帖子

2892

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2892
发表于 2020-11-26 21:04:59 | 显示全部楼层 |阅读模式
当BottomNavigation的Item超过3个时选择会有动画效果,且选中Item时文字才会显示,下面是解决方案:
sdk版本小于28时用反射解决
public class BottomNavigationViewHelper {
    @SuppressLint("RestrictedApi")
    public static void disableShiftMode(BottomNavigationView view) {
        BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
        try {
            Field shiftingMode = menuView.getClass().getDeclaredField("mShiftingMode");
            shiftingMode.setAccessible(true);
            shiftingMode.setBoolean(menuView, false);
            shiftingMode.setAccessible(false);
            for (int i = 0; i < menuView.getChildCount(); i++) {
                BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
                //noinspection RestrictedApi
                item.setShiftingMode(false);
                // set once again checked value, so view will be updated
                //noinspection RestrictedApi
                item.setChecked(item.getItemData().isChecked());
            }
        } catch (NoSuchFieldException e) {
        } catch (IllegalAccessException e) {
        }
    }
}

BottomNavigationViewHelper.disableShiftMode(navigation);


sdk版本大于等于28时置属性解决
     app:itemHorizontalTranslationEnabled="false"  
     app:labelVisibilityMode="labeled"


<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/nav_view"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="0dp"
    android:layout_marginEnd="0dp"
    android:background="?android:attr/windowBackground"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:menu="@menu/bottom_nav_menu"

    app:itemHorizontalTranslationEnabled="false"
    app:labelVisibilityMode="labeled"
    />



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|恒泰软件 ( 桂ICP备13003577号-1 )  

桂公网安备 45082102000255号

GMT+8, 2024-3-29 17:15 , Processed in 0.122158 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表