美文网首页Android知识Android开发Android技术知识
关闭BottomNavigationView的滑动动画

关闭BottomNavigationView的滑动动画

作者: Wang_Yi | 来源:发表于2017-05-09 10:19 被阅读2058次

BottomNavigationView在有3个以上item的时候切换有个很浮夸的切换动画,BottomNavigationView并没有API可以直接关闭这个效果,我们可以通过反射关闭:

    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);
                item.setShiftingMode(false);
                item.setChecked(item.getItemData().isChecked());
            }
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
默认效果 关闭动画

相关文章

网友评论

    本文标题:关闭BottomNavigationView的滑动动画

    本文链接:https://www.haomeiwen.com/subject/npdbtxtx.html