Android中BottomNavigationView切换时去除效果
在BottomNavigationView中,默认 >3 的选中效果会影响ViewPager的滑动切换时的效果,故利用反射去掉。其实就是改变 item中mShiftingMode的值。代码如下:
public static void disableShiftMode(BottomNavigationView navigationView) {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) navigationView.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 itemView = (BottomNavigationItemView) menuView.getChildAt(i);
itemView.setShiftingMode(false);
itemView.setChecked(itemView.getItemData().isChecked());
}
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- Android(安卓)Studio&Xcode常用快捷键整理
- Android(安卓)应用程序自动更新
- Android小程序实现个人信息管理系统
- 圆形ImageView
- Android(安卓)Launcher3 设置壁纸请教
- Android之Path类
- 安卓仿IOS SwitchButton,增加效果体验
- Android图像处理(二)底片效果、怀旧效果、浮雕效果