You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:56:31