8
votes

Android Définir le rembourrage de séparateur pour l'écran de préférence

J'ai des préférencesCrean contiennent de nombreuses cases à cocher, je le personnifie en le référencez à la mise en page personnalisée en tant que ci-dessous: xxx pré>

myLayOut.xml: strong> p>

  list.setPadding(0, 0, 0, 0);


0 commentaires

4 Réponses :


1
votes

Vous devez créer votre forme introactive personnalisée

personnalisé_divider.xml strud> p>

p> xxx pré>

p >

Définissez ceci comme diviseur pour votre liste de réception dans XML P>

ACTIVITY_LIST.XML FORT> P>

<ListView
    android:dividerHeight="2dp"
    android:divider="@drawable/custom_divider"
    ...
/>


1 commentaires

Je n'ai pas ListView, nous appelons listeView comme android.r.id.id.list dans l'activité pour permettre de personnaliser le diviseur dans l'écran de préférence, merci



4
votes

pour permettre le rembourrage des diviseurs de préférence strong>

premier fort>: ajoutez cette ligne à votre activité de préférence qui conduit à la transparence du diviseur par défaut Android P>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:paddingRight="?android:attr/scrollbarSize">

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:gravity="center"
    android:minWidth="@dimen/preference_icon_minWidth"
    android:orientation="horizontal">
    <ImageView
        android:id="@+android:id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        />
</LinearLayout>

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dip"
    android:layout_marginRight="8dip"
    android:layout_marginTop="6dip"
    android:layout_marginBottom="6dip"
    android:layout_weight="1">

    <TextView android:id="@+android:id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"            
        android:textAppearance="?android:attr/textAppearanceMedium"           
        android:fadingEdge="horizontal" />

    <TextView android:id="@+android:id/summary"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@android:id/title"
        android:layout_alignLeft="@android:id/title"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="?android:attr/textColorSecondary"
        android:maxLines="4" />

    <View 
       android:id="@+id/divider" 
       android:background="@drawable/divider" 
       android:layout_width="match_parent" 
       android:layout_marginLeft="30dp" 
       android:layout_marginRight="30dp" 
       android:layout_height="5dp" 
       android:layout_below="@+android:id/summary"/> 

</RelativeLayout>

<!-- Preference should place its actual preference widget here. -->
<LinearLayout android:id="@+android:id/widget_frame"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:minWidth="@dimen/preference_widget_width"
    android:gravity="center"
    android:orientation="vertical" />


1 commentaires

Bonjour, j'essaie d'enlever les lignes de diviseur dans mon fragment de préférence. Mais je ne comprends pas comment appeler listview list = (listview) (listview) (android.r.id.id.list); je n'ai pas l'objet d'affichage en fragment



1
votes

Vous devez créer votre propre ressource introactive pour le diviseur:

final float scale = getContext().getResources().getDisplayMetrics().density;
int pixels = (int) (dps * scale + 0.5f);


0 commentaires

1
votes

Vous devriez essayer de dériver un thème de l'autre par défaut de Android, en l'attribuant à votre écran de préférences (bien qu'ils disent qu'il existe un bogue sur des versions 2.x qui vous empêche de le faire, à moins que vous ne soyez que si vous avez décrit ici ) et remplacer le Android: DivierPadding Propriété d'un des styles.

Je ne peux pas vraiment vous dire avec certitude quel style qui serait, vous devrez creuser, voici Android's styles.xml pour référence et voici un exemple Comment remplacer l'apparence ListView dans un thème


0 commentaires