前提・実現したいこと
PopupMenuの選択時の背景色変更について、スタイルに「listselector_popup.xml」を適用して
実現したい。
現状のままでは「<item name="android:colorBackground">@color/dialog_background_color</item>
」が適用されるだけで、選択しても「listselector_popup.xml」は適用されない。
※背景色は黒に近いグレーとしたが、選択時はAndroid4.4.4では薄いグレー、Android8では黒となり、
Android8のときに変化を感じないため、自分で指定したい。
なお、以下の回答を参考にソースを直しても変化はない。
Android: background color when menu item is pressed
該当のソースコード
xml
1styles.xml 2 3 <!-- ポップアップテーマ --> 4 <style name="PopupMenu" parent="@android:style/Widget.PopupMenu"> 5 <item name="android:textColor">@color/font_color</item> 6 <item name="android:colorBackground">@color/dialog_background_color</item> 7 <item name="android:dropDownSelector">@drawable/listselector_popup</item> 8 <item name="android:listViewStyle">@style/CustomListView2</item> 9 </style> 10 <style name="CustomListView2" parent="@android:style/Widget.ListView"> 11 <item name="android:listSelector">@drawable/listselector_popup</item> 12 </style>
xml
1listselector_popup.xml 2 3<?xml version="1.0" encoding="utf-8"?> 4<selector 5 xmlns:android="http://schemas.android.com/apk/res/android"> 6 <item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@color/listselect_dialog_color" /> 7 <item android:state_focused="true" android:state_enabled="false" android:drawable="@color/listselect_dialog_color" /> 8 <item android:state_focused="true" android:state_pressed="true" android:drawable="@color/listselect_dialog_color" /> 9 <item android:state_focused="false" android:state_pressed="true" android:drawable="@color/listselect_dialog_color" /> 10 <item android:state_focused="true" android:drawable="@color/listselect_dialog_color" /> 11</selector>
java
1 // PopupMenuのスタイル設定 2 Context wrapper = new ContextThemeWrapper(context, R.style.PopupMenu); 3 // PopupMenuのインスタンスを作成 4 PopupMenu popup = new PopupMenu(wrapper, v);
補足情報(FW/ツールのバージョンなど)
Android Studio3.4
対象API14から28まで
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。