Я создаю контекстное меню, подобное этому
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
registerForContextMenu(rootView)
}
override fun onCreateContextMenu(menu: ContextMenu?, v: View?, menuInfo: ContextMenu.ContextMenuInfo?) {
super.onCreateContextMenu(menu, v, menuInfo)
menuInflater.inflate(R.menu.main_menu, menu)
}
main_menu. xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/settings"
android:icon="@drawable/ic_settings_24dp"
android:title="Launcher settings"/>
<item android:id="@+id/widgets"
android:icon="@drawable/ic_widgets_24dp"
android:title="Widgets" />
<item android:id="@+id/wallpaper"
android:icon="@drawable/ic_wallpaper_24dp"
android:title="Wallpaper" />
</menu>
Как мне показывать подобные иконки? (изображение из https://material.io/components/menus/#anatomy)
![enter image description here](https://i.stack.imgur.com/142YF.png)
Может быть, можно как-то получить доступ к значку через отражение? Я нашел пример для всплывающего меню, но, к сожалению, оно не работает для контекстного меню.
try {
val fieldPopupMenu = PopupMenu::class.java.getDeclaredField("mPopup")
fieldPopupMenu.isAccessible = true
val mPopup = fieldPopupMenu.get(popupMenu)
mPopup.javaClass
.getDeclaredMethod("setForceShowIcon", Boolean::class.java)
.invoke(mPopup, true)
} catch (e: Exception){
Log.e(localClassName, "Error showing menu icons", e)
} finally {
popupMenu.show()
}