2017-08-22 3 views
1

Wenn ich einen Schalter berühren, alle anderen Schalter wie unten normal aussehen: enter image description here aber den Schalter, ausrichtet wie unten links nur berührt wird: enter image description here ich die folgende Bibliothek für Einstellungen Bildschirm:SwitchPreferenceCompat Ein/Aus-Animation führt linke Ausrichtung

com.android.support:preference-v14:25.3.0 

Mit diesen Arten:

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

XML-Datei:

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

Es spielt keine Rolle, ob ich PreferenceThemeOverlay statt benutzerdefinierten Stil verwenden. Ich habe beide Support-Einstellungen v7 und v14 ausprobiert. Was vermisse ich?

Edit: Ich habe bemerkt, CheckBoxPreference verhält sich auf die gleiche Weise.

+0

Off-Thema: Präferenz XML ist nicht auf Ansicht Attribute. Es ist eine ganz andere Ebene der Abstraktion. Entferne alle Attribute 'gravity' und' layout_ * '. –

+0

Ok. Ich habe es nur versucht. –

Antwort

0

Ich fand eine Lösung. Ich habe eine PreferenceFragmentCompat in einem Fragment verwendet. Ich denke, das hat das Problem irgendwie verursacht. Wie auch immer, ich habe die Architektur meiner App geändert, um einfacher zu sein und das Problem zu lösen.