私はPopupMenuスタイリングに苦労していました。多くの研究の後で、私のテーマにカスタムPopupMenuスタイルを作成するプロセスはかなり正直なようでした。例えば、this questionの答えは、PopupMenuの背景色を変更する簡単な方法のようです。しかし、私のプロジェクトではこれらの解決策のどれも働いていません。だから私は自分のプロジェクトでPopupMenuをスタイルするために実際に継承するべきものを見つけるためにスタイルソースを掘り下げ始めました。カスタムPopupMenuスタイルは無視されています
私は、API 19を実行している携帯電話に私のテストを実行している、と私の基本テーマは次のようになります。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- ... -->
<item name="android:popupMenuStyle">@style/CustomPopupMenu</item>
</style>
<style name="CustomPopupMenu" parent="@style/Widget.AppCompat.Light.PopupMenu">
<item name="android:popupBackground">@color/retina_burning_hot_pink</item>
</style>
これは、ここで受け入れ答えのほとんどが示す解決策です。しかし、これは私のPopupMenuをスタイルしません。だから私は、私のテーマの遺伝子を見つけ出し、どのデフォルト設定が使われているかを知るために、ソースを掘り下げました。これは私が見つけたものです:
<style name="Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light.DarkActionBar"/>
<style name="Base.Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light">
<style name="Base.Theme.AppCompat.Light" parent="Base.V7.Theme.AppCompat.Light"/>
そしてBase.V7.Theme.AppCompat.Light
に私が見つけたこれらのデフォルト設定:
<!-- Popup Menu styles -->
<item name="popupMenuStyle">@style/Widget.AppCompat.Light.PopupMenu</item>
<item name="textAppearanceLargePopupMenu">@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Large</item>
<item name="textAppearanceSmallPopupMenu">@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small</item>
<item name="listPopupWindowStyle">@style/Widget.AppCompat.ListPopupWindow</item>
<item name="dropDownListViewStyle">?android:attr/dropDownListViewStyle</item>
だから、私の知る限り、私のテーマは、デフォルトのPopupMenuのスタイルを使用しています
Theme.AppCompat.Light.DarkActionBar
から継承
@style/Widget.AppCompat.Light.PopupMenu
。私はその後、自分のPopupMenu設定を設定するためにそのスタイルを継承します。自分のアクティビティとアプリケーションがすべて正しいテーマを使用していることを確認しました。私はなぜこれがうまく動作しないのか分からない。私はまた、これらの設定を試してみた:
<item name="android:textAppearanceLargePopupMenu">@style/CustomPopupMenuLarge</item>
<item name="android:textAppearanceSmallPopupMenu">@style/CustomPopupMenuSmall</item>
<item name="android:popupWindowStyle">@style/CustomPopupMenuListWindow</item>
私は一つ一つのカスタムスタイルを提供し、それらのどれも働きました。すべてのカスタムスタイルをオーバーライドできますか?私が困惑しているので、どんな助けもありがたいです。
EDITS
ここにここに私のマニフェストだ...
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.blah.blah">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".Activities.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
はAppTheme.NoActionBar
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
あなたがマニフェストにテーマを設定していますか? – Sree
@Sree - はい、質問に記載されています。 – NoChinDeluxe
コードを見ることができますか(おそらく正しいと思っていますが、確かめてください) – Sree