恒泰软件,必属精品

标题: 去除BottomNavigationView的Item大于3个时的动画效果 [打印本页]

作者: admin    时间: 2020-11-26 21:04
标题: 去除BottomNavigationView的Item大于3个时的动画效果
当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"
    />








欢迎光临 恒泰软件,必属精品 (http://bbs.zj500.com/) Powered by Discuz! X3.2