1. ホーム
  2. android

[解決済み] PreferenceFragmentCompatはpreferenceThemeが設定されている必要があります。

2022-05-18 04:33:21

質問

v7 Preference Support Library の新しい PreferenceFragmentCompat を使って。 http://developer.android.com/tools/support-library/features.html#v7-preference を使用すると、このエラーが発生します。

E  java.lang.IllegalStateException: Must specify preferenceTheme in theme
E      at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:202)

どのようなテーマを設定するのか?

更新してください。 を使用してみました。

<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>

を@Bogatoさんに提案していただきましたが、ロリポップでも違和感があり、とてもHoloに見えてしまいます。

サポートライブラリです。

ネイティブの設定です。

どのように解決するのですか?

<ブロッククオート

サンプルプロジェクトはこちら

バグフィックスはgradle依存として利用可能です。

これで、ライブラリを簡単に使うことができるようになりました。以下はその最も簡単な方法ですが、より詳しい情報はREADMEをご覧ください。

1. モジュールのgradleファイルを更新する。

compile 'com.takisoft.fix:preference-v7:27.0.0.0'

2. フラグメントのベースとして適切なクラスを使用します。

のどちらかを使用することができます。 PreferenceFragmentCompat または PreferenceFragmentCompatDividers .

( をインポートする際に、適切なパッケージ名になるように気をつけましょう。 PreferenceFragmentCompat ! )

3. 適切なテーマを使用する

含むアクティビティーのテーマを @style/PreferenceFixTheme NoActionBar、Lightなどのような。

より詳細な情報や使い方のヒントは プロジェクトのページ .


追伸: このセクションでは、ライブラリの作成に至った詳細な解決策を見つけることができましたが、混乱を招く可能性があるため、削除することにしました。手順が気になる方は、まだ 改訂履歴 をご覧ください。