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> 

और मेरी प्राथमिकता स्क्रीन बहुत अच्छा लग रहा है

मैं निम्नलिखित आयात किया। मेरी एकमात्र समस्या यह है कि श्रेणियों में शून्य स्थान या दृश्य अलगाव होता है, जिससे सभी वरीयताओं को एक साथ बहुत आसानी से देखा जाता है।

सवालों की एक जोड़ी:

  1. एंड्रॉयड करता

    सामग्री डिजाइन डॉक्स क्या (आईई उपकरण श्रेणी से ऊपर) ऊपर और नीचे छाया की तरह दिखता है के साथ एक विभक्त दिखाने यह प्रदान करें? यदि ऐसा है तो एक नया एपकंपैप थीम है? या कुछ और मैं गलत कर रहा हूँ?

  2. यदि एंड्रॉइड अभी तक इस विभाजक को भौतिक वरीयता विषय में प्रदान नहीं करता है, तो क्या किसी ने इसे अभी तक बनाया है? मैंने यह देखा, जहां वह एक कस्टम लेआउट, Divider between category in PreferenceFragment के साथ एक नई श्रेणी बनाता है। लेकिन मुझे पूरी तरह से यकीन नहीं है कि वांछित प्रभाव कैसे बनाया जाए।

+0

यह ऊंचाई के साथ सिर्फ दो अलग अलग 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> 

drawable/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>