PopupMenuの選択時の背景色変更について
PopupMenuの選択時の背景色変更について、スタイルに「listselector_popup.xml」を適用して
実現したい。
現状のままでは「@color/dialog_background_color
」が適用されるだけで、選択しても「listselector_popup.xml」は適用されない。
※背景色は黒に近いグレーとしたが、選択時はAndroid4.4.4では薄いグレー、Android8では黒となり、
Android8のときに変化を感じないため、自分で指定したい。
なお、以下の回答を参考にソースを直しても変化はない。
Android: background color when menu item is pressed
styles.xml
<!-- ポップアップテーマ -->
<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
<item name="android:textColor">@color/font_color</item>
<item name="android:colorBackground">@color/dialog_background_color</item>
<item name="android:dropDownSelector">@drawable/listselector_popup</item>
<item name="android:listViewStyle">@style/CustomListView2</item>
</style>
<style name="CustomListView2" parent="@android:style/Widget.ListView">
<item name="android:listSelector">@drawable/listselector_popup</item>
</style>
listselector_popup.xml
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@color/listselect_dialog_color" />
<item android:state_focused="true" android:state_enabled="false" android:drawable="@color/listselect_dialog_color" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@color/listselect_dialog_color" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@color/listselect_dialog_color" />
<item android:state_focused="true" android:drawable="@color/listselect_dialog_color" />
</selector>
//java
// PopupMenuのスタイル設定
Context wrapper = new ContextThemeWrapper(context, R.style.PopupMenu);
// PopupMenuのインスタンスを作成
PopupMenu popup = new PopupMenu(wrapper, v);