我试图为我的工具栏显示一个下拉菜单,其中包括文本和图标:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_add"
android:title="@string/menu.add"
android:icon="@drawable/ic_add_black_24dp"
app:showAsAction="always" />
<item
android:id="@+id/menu_edit"
android:title="@string/menu.edit"
android:icon="@drawable/ic_create_black_24dp"
app:showAsAction="never" />
</menu>
menu_add 确实在工具栏本身上显示了图标,但 menu_edit 仅显示没有图标的文本。
这个答案:https://stackoverflow.com/a/19750717/197127表示 Google 已按设计删除了它,但没有提及如何覆盖它。
编辑
我还需要设备“菜单”按钮来显示相同的菜单。
最佳答案
我创建了这样的东西:
@SuppressLint("RestrictedApi")
fun Menu.showIcons() {
(this as? MenuBuilder)?.setOptionalIconsVisible(true)
}
它基本上适用于任何菜单。
对于工具栏,您可以在 Activity 或 Fragment 中重写 onPrepareOptionsMenu
,并且在调用 super
之前只需调用 menu.showIcons()
或者您可以使用它与 PopupMenu
类似 PopupMenu(requireContext(),anchor).menu.showIcons()
。
关于Android 工具栏弹出菜单不显示图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30845768/