2016-07-06 1 views
2

私のアンドロイドアプリケーションでは、設定画面で自分のアプリを「com.android.support:preference-v14:23.4.0」に移行しています。私はTheme.appCompatテーマを使用しています。 Android 6搭載端末ではすべて正常に動作します。Android 5とAndroid 4の電話機で分割線が正しくありません

しかし、Android 5とAndroid 4の携帯電話では、分割線が「黒」であることに気付きました。私は暗いテーマを使用していたので、それらは白でなければなりません(いくつかのアルファを含む)。 Android 6の場合はそうですが、Android 5とAndroid 4の場合はそうではありません。

私は分け前の色を変更しようとしましたが、できませんでした。私はインターネット上で解決策を探し求めましたが、何もないようです。誰かがこれで私を助けることができます

答えて

2

PreferenceFragmentCompatクラスが提供するsetDividerメソッドを使用できます。それはあなたの仕切りのスタイルを変えるでしょう。 しかし、そのメソッドを使用するには、ビューが作成されていることを確認する必要があります。そうしないとnullPointerエラーが発生します。 これを行う最も良い場所は、onViewCreatedのスタイルを変更することです。

例:あなたの答えのための

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    setDividerStyle(); 
} 

private void setDividerStyle() { 
    ColorDrawable test = new ColorDrawable(getActivity().getResources().getColor(R.color.your color)); 
    setDivider(test); 
    setDividerHeight(1); 
} 
1

あなたはAndroid 6とAndroid 5(と4)に異なるテーマを使用しているようです。 これをチェックしましたか?

+0

感謝。私は今のところ一つのstyles.xmlファイルしか持っていないので、私はすべて同じテーマを使用します。 – Sushil

+0

テーマの親は何ですか?たとえば、Android 5.0以降でのみ使用するテーマは、Theme.AppCompatテーマの親 –

+0

です。確かに、アンドロイド5.0以上で素材が紹介されました。それで、なぜ私はappcompat librrayを使って下位バージョンのmarerialデザインをサポートしているのですか?マテリアルデザインのテーマのほとんどはうまく見えますが、ディバイダはうまくいきません。 – Sushil

関連する問題