Android菜单中AppCompatImageButton不显示图片仅显小点问题排查
问题分析与解决方案
核心错误原因:你给打印按钮的menu item设置了
app:actionViewClass="android.support.v7.widget.AppCompatImageButton",这是错误用法。actionViewClass属性用于指定自定义复杂操作视图(比如SearchView这类控件),普通图标按钮不需要设置该属性。设置后系统会创建AppCompatImageButton作为该item的视图,但不会自动将你指定的android:icon赋值给这个按钮,导致图标无法显示,仅呈现空按钮的小点。修复步骤:
- 移除打印item中的
app:actionViewClass="android.support.v7.widget.AppCompatImageButton"代码行。 - 确认
@drawable/print资源存在于项目中,且在不同分辨率的drawable目录(如drawable-mdpi、drawable-hdpi等)下有对应图标,避免因资源缺失导致图标不显示。
- 移除打印item中的
修复后的完整代码:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_filter" app:showAsAction="always" android:title="Filter" android:visible="false" android:orderInCategory="2" android:icon="@drawable/ic_tune_black_24dp" /> <item android:id="@+id/action_search" android:icon="@drawable/ic_search" android:title="@string/action_search" android:orderInCategory="0" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always" /> <item android:id="@+id/action_print" android:icon="@drawable/print" android:title="Print" android:orderInCategory="1" android:visible="true" app:showAsAction="always" /> </menu>
内容的提问来源于stack exchange,提问作者Rohan
相关产品推荐
相关产品推荐

