5

これは、ストックAndroidでアクションバーのオーバーフローをスタイルする方法です:

<style name="DropDownNav.MyTheme" parent="@android:style/Widget.Holo.Light.Spinner">
    <item name="android:popupBackground">@drawable/menu_dropdown_panel</item>
    <item name="android:dropDownSelector">@drawable/selectable_background</item>
</style>

ただし、指定されたカスタム セレクターは、ハードウェア ボタンのある Samsung デバイスのポップアップ オプション メニューには適用されず、代わりにデフォルトの青になります。

この回答を見て、適用しようとしました

<style name="ListPopupWindow.IvuTheme" parent="android:Widget.ListPopupWindow">
    <item name="android:dropDownSelector">@drawable/list_selector_holo_light</item>
    <item name="android:listSelector">@drawable/list_selector_holo_light</item>
</style>

しかし、効果はありません。

後者のハードウェア ボタン オプション メニューでセレクターを変更するには、どのスタイルを継承する必要がありますか (また、テーマの対応する属性は何ですか)?

アドバイスをありがとう

4

1 に答える 1

-1

1) Application クラスを拡張する

public class MyApplication extends Application {

@Override
public void onCreate() {
    super.onCreate();

    try {
        ViewConfiguration config = ViewConfiguration.get(this);
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
        if(menuKeyField != null) {
            menuKeyField.setAccessible(true);
            menuKeyField.setBoolean(config, false);
            }
        } catch (Exception ex) {
            // Ignore
        }
    }
}

2) マニフェストに追加:

<application
    ...
    android:name=".MyApplication">
于 2014-12-06T22:07:03.673 に答える