Android: Как изменить задний фон у элемента menu в тулбаре
Нужно изменить бекграунд у showAsAction = always элемента как на примере.
Я пробовал делать кастомный xml через layer-list с бекграундом и картинкой, но в результате бекграунд был только внутри иконки, а не по всему периметру элемента в меню.
Так же пробовал android(app):background, android(app):itemBackground
Разметка меню:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:layout_width="wrap_content"
android:icon="@drawable/ic_search"
android:title="Search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="collapseActionView|ifRoom" />
<item
android:id="@+id/action_filter"
android:layout_width="wrap_content"
android:icon="@drawable/ic_slider"
app:iconTint="@color/green"
android:iconTint="@color/green"
android:title="filters"
app:showAsAction="collapseActionView|ifRoom"
/>
Привязка меню к лейауту:
val menuHost: MenuHost = binding.searchAnimeToolbar
menuHost.addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.menu, menu)
val menuFilterButton = menu.findItem(R.id.action_filter)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
if(menuItem.itemId == R.id.action_filter) {
Toast.makeText(context, "coming soon", Toast.LENGTH_LONG).show()
}
return true
}
}, viewLifecycleOwner)

