最近公司项目用到navigationRailView官方控件进行导航切换,需要用到设置navigationRailView单项背景色,源码里该方法源码里被隐藏掉,考虑用反射解决问题
//注意左边是方法名(命名不太规范),得到需要设置的menuview;
Method navigationRailMenuView = navigationRailView.getClass().getDeclaredMethod("getNavigationRailMenuView");
//需要设置属性才能invoke方法
navigationRailMenuView.setAccessible(true);
//得到需要设置的menuview;
NavigationBarMenuView navigationBarMenuView = (NavigationBarMenuView)
navigationRailMenuView.invoke(navigationRailView,null);
//得到想要的item设置背景色 navigationBarMenuView.findItemView(R.id.variablesFragment).setItemBackground(R.color.f5f5f5);
在Android开发中,由于官方控件navigationRailView未提供直接设置单项背景色的方法,开发者通过反射调用getNavigationRailMenuView方法获取内部菜单视图,然后设置属性并调用setItemBackground来实现自定义背景色。
1274

被折叠的 条评论
为什么被折叠?



