8

私は素材のテーマで自分の好みをスタイルしようとしています。カテゴリ設定後の素材デバイダ

私は次のようにインポート:

compile 'com.android.support:preference-v7:25.1.0' 
compile 'com.android.support:preference-v14:25.1.0' 

その後、私のメインのアプリのテーマでは、好みのテーマ設定:

<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item> 

をそして、私の好みの画面はかなりよさそうです。私の唯一の問題は、カテゴリにはゼロスペースまたは視覚的な分離があり、すべての設定が非常に壊れたように見えるということです。

材料設計ドキュメントは上部と下部の影(デバイスカテゴリ上のIE)のように見えるものとの仕切りを示しています

質問のカップル:

  1. はアンドロイドをいこれを提供する?もしそうなら、より新しいappcompatテーマがありますか?他に何か間違っているのですか?

  2. アンドロイドがまだこの素材をテーマに設定していない場合は誰でもテーマを作成していますか?私はこれを見て、カスタムレイアウトで新しいカテゴリを作成しました。Divider between category in PreferenceFragment。しかし、私は望む効果を生み出す方法を完全には分かっていません。

+0

それは標高とのちょうど2つの異なるViewGroupsです。別のViewGroupsを作成し、その間にマージンを追加して標高を設定します。それは簡単です! –

答えて

2

他の回答はうまくいきました。あなたが単にドロアブルを理解できなかった場合には、ここで少し編集しました。

XML /あるpreferences.xml

<PreferenceCategory 
    android:layout="@layout/divider" 
    android:title="Category2"> 
    <Preference 
     android:title="Test1" 
     android:summary="Summary1"/> 

    </PreferenceCategory> 

レイアウト/ divider.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="10dp" 
       android:orientation="vertical"> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="5dp" 
     android:background="@drawable/shadow"/> 


</LinearLayout> 

描画可能/ shadow.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient 
     android:startColor="#1F000000" 
     android:endColor="@android:color/transparent" 
     android:angle="90" /> 
</shape> 
1

あなたが密接にスクリーンショットを見れば、あなた」あなたが望むディバイダエフェクトは、上と下に影がありますが、中央にはありません。だから、除算器のために、以下のXMLは動作するはずです: -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="10dp" 
      android:orientation="vertical"> 

<View 
    android:layout_width="match_parent" 
    android:layout_height="5dp" 
    android:background="@drawable/shadow_bottom"/> 

<View 
    android:layout_width="match_parent" 
    android:layout_height="5dp" 
    android:background="@drawable/shadow_top"/> 

</LinearLayout> 

を、PreferenceScreenため、分圧器を表示するには、あなたがしなければならないすべては、上記のXMLのように設定android:layoutと空PreferenceCategoryを含めることです。 android:layout="@layout/divider_layout"のようなものです。 「空の」プリファレンスカテゴリとは、プリファレンスカテゴリにPreferenceの子供がいないことを意味します。

だから、あなたのPreferenceScreenは次のようになります -

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
     <PreferenceCategory 
      android:title="Category_First"> 

     <Preference 
      android:title="prefA"/> 

     </PreferenceCategory> 

     <PreferenceCategory 
      android:layout="@layout/divider_layout"> 
    </PreferenceCategory> 

    <PreferenceCategory 
      android:title="Category_Second"> 

     <Preference 
      android:title="prefB"/> 

    </PreferenceCategory> 
</PreferenceScreen> 
関連する問題