Android navigationRailView修改单项背景色

在Android开发中,由于官方控件navigationRailView未提供直接设置单项背景色的方法,开发者通过反射调用getNavigationRailMenuView方法获取内部菜单视图,然后设置属性并调用setItemBackground来实现自定义背景色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近公司项目用到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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值