如何修改Navigation Drawer Layout中的设置图标?修改失败求助
解决Toolbar溢出按钮图标不生效的问题
看起来你搞混了两个不同的图标配置点——你之前修改的是溢出菜单里的选项图标(点击三个点后出现的logout选项图标),但你真正想改的是触发溢出菜单的按钮图标(就是那个红圈标注的三个点图标)。咱们一步步来修正:
问题根源
你在menu文件里修改的android:icon="@drawable/icon_logout"是给action_settings这个菜单项设置图标,它只会在你点击溢出按钮后显示在下拉列表里,而不会改变溢出按钮本身的样子。另外你虽然在MyTheme里配置了actionOverflowButtonStyle,但你的BaseActivity用的是AppTheme,这个主题并没有继承或包含这个样式配置,所以设置没生效。
具体修改步骤
1. 修正溢出按钮样式的父主题
你现有的ActionButtonOverflowStyle用了Holo的父样式,但你整个项目用的是AppCompat主题,得改成AppCompat对应的父样式,避免兼容性问题:
<style name="ActionButtonOverflowStyle" parent="Widget.AppCompat.ActionButton.Overflow"> <item name="android:src">@drawable/icon_logout</item> </style>
2. 给BaseActivity使用的主题添加溢出按钮样式
你的BaseActivity在Manifest里设置的主题是@style/AppTheme,所以要把溢出按钮的样式配置加到这个主题里:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- 保留你原来的配置 --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <!-- 添加这行,关联溢出按钮样式 --> <item name="actionOverflowButtonStyle">@style/ActionButtonOverflowStyle</item> </style>
3. 验证Toolbar的配置
从你的onCreate代码看,你已经调用了setSupportActionBar(toolbar),这部分配置是正确的,不需要额外修改。
额外说明
如果你之后想修改溢出菜单里的选项图标(比如logout选项的图标),你原来的menu配置是对的,但要确保app:showAsAction="never"的设置符合预期——这个值会让菜单项只会在溢出菜单里显示,它的图标也只会在下拉列表里出现。
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

