

PopupMenuの選択時の背景色変更について、スタイルに「listselector_popup.xml」を適用して  
実現したい。  
現状のままでは「@color/dialog_background_color  
」が適用されるだけで、選択しても「listselector_popup.xml」は適用されない。  
※背景色は黒に近いグレーとしたが、選択時はAndroid4.4.4では薄いグレー、Android8では黒となり、  
Android8のときに変化を感じないため、自分で指定したい。

なお、以下の回答を参考にソースを直しても変化はない。  
[Android: background color when menu item is
pressed](https://stackoverflow.com/questions/26585045/android-background-
color-when-menu-item-is-pressed/35749206#35749206)

[code]

    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>
    
[/code]

[code]

    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>
    
[/code]

[code]

    //java
            // PopupMenuのスタイル設定
            Context wrapper = new ContextThemeWrapper(context, R.style.PopupMenu);
            // PopupMenuのインスタンスを作成
            PopupMenu popup = new PopupMenu(wrapper, v);
    
[/code]


CC BY-SA 4.0
2019-08-10T08:47:44.040
57285
2021-03-07T04:29:07.283
2021-03-07T04:29:07.283
3060
35417
question
java android xml
PopupMenuの選択時の背景色変更について


以下で実現できました。  
PopupMenuはitemで定義してるし、itemBackgroundですよね。。

[code]

    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:itemBackground">@drawable/listselector_popup</item>
        </style>
    
[/code]


CC BY-SA 4.0
2019-08-11T07:51:38.340
57299
2019-08-11T07:51:38.340
35417
57285
answer