2017-08-22 4 views
1

Quand je touche un interrupteur, tous les autres commutateurs semblent normaux comme ci-dessous: enter image description here Mais le commutateur qui vient de toucher à gauche comme ci-dessous aligne: enter image description here J'utilise la bibliothèque suivante pour écran des préférences:SwitchPreferenceCompat On/Off animation provoque un alignement gauche

com.android.support:preference-v14:25.3.0 

Avec ces styles:

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorPrimary</item> 
    <item name="preferenceTheme">@style/PrefTheme</item> 
</style> 

<style name="PrefTheme" parent="PreferenceThemeOverlay"> 
     <item name="android:textSize">14sp</item> 
</style> 

fichier XML:

<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:key="prefscreen" 
    android:layout_width="match_parent" 
    > 
    <PreferenceCategory 
     android:title="@string/settings_general" 
     android:layout_width="match_parent" 
     android:gravity="right" 
     > 

     <SwitchPreferenceCompat 
      android:key="showNotif" 
      android:layout_width="match_parent" 
      android:gravity="right" 
      android:title="@string/settings_notif_menu" 
      android:summary="@string/settings_sub_notif_menu" /> 
    </PreferenceCategory> 
    ... 
</PreferenceScreen> 

Peu importe si j'utilise PreferenceThemeOverlay au lieu de style personnalisé. J'ai essayé les deux préférences de support v7 et v14. Qu'est-ce que je rate? Editer: J'ai remarqué que CheckBoxPreference se comporte de la même manière.

+0

Hors-sujet: Préférence XML ne se soucie pas des attributs de vue. C'est une couche d'abstraction totalement différente. Enlevez tous les attributs 'gravity' et' layout_ * '. –

+0

Ok. J'essayais juste. –

Répondre

0

J'ai trouvé une solution. J'utilisais un PreferenceFragmentCompat dans un fragment. Je suppose que cela causait le problème d'une manière ou d'une autre. De toute façon, j'ai modifié l'architecture de mon application pour qu'elle soit plus simple et résolue.