2017-11-15 4 views
0

Ich arbeite daran, ein paar benutzerdefinierte Einstellungen für einen Einstellungsbildschirm zu erstellen. Die Layouts sind ziemlich geradlinig, zwei Textansichten und eine Bildansicht. Ich möchte, dass die Textansichten umbrochen werden und die Einstellungsansicht auf der Grundlage des Inhalts wächst. Ignoriere die Einschränkungen für den Moment Ich möchte dies mit einem Constraint-Layout einrichten, aber ursprünglich dachte ich, ich hätte dort etwas falsch gemacht, also ging ich zu einem einfachen relativen Layout, während ich Fehler beseitige.V7 Preference Benutzerdefiniertes Layout mit dynamischer Höhe?

Ich habe ein paar verschiedene Grundlayouts eingerichtet, aber es scheint, als könnte es eine maximale Höhe geben, die nicht leicht übersteuert werden kann?

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 


<TextView 
    android:id="@+id/motivatingTitleTextView" 
    android:layout_width="wrap_content" 
    app:layout_constraintWidth_default="wrap" 
    android:layout_height="wrap_content" 
    android:text="@string/add_motivating_photo_title" 
    android:layout_marginTop="10dp" 
    android:layout_marginBottom="10dp" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toTopOf="parent"/> 

<TextView 
    android:id="@+id/motivatingMessageTextView" 
    android:layout_below="@id/motivatingTitleTextView" 
    android:layout_marginBottom="10dp" 
    android:layout_width="wrap_content" 
    app:layout_constraintWidth_default="wrap" 
    android:layout_height="wrap_content" 
    android:text="@string/add_motivating_photo_message" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@id/motivatingTitleTextView" 
    app:layout_constraintBottom_toBottomOf="parent"/> 
</RelativeLayout> 

Hier ist der XML-Einstellungen

<android.support.v7.preference.PreferenceScreen 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<android.support.v7.preference.PreferenceCategory 
    android:title="Notifications and Access"> 

    <android.support.v7.preference.SwitchPreferenceCompat 
     android:key="allowPushNotifications" 
     android:title="Notifications" 
     android:defaultValue="true" /> 
</android.support.v7.preference.PreferenceCategory> 

<android.support.v7.preference.PreferenceCategory 
    android:title="Personalization"> 

    <com.company.Settings.AddMotivatingPhotoPreference/> 
</android.support.v7.preference.PreferenceCategory> 

Schließlich Das Preference Fragment public class SettingsFragment erweitert PreferenceFragmentCompat {

public SettingsFragment() 
{ 
    // Required empty public constructor 
} 

@Override 
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) 
{ 
    addPreferencesFromResource(R.xml.settings); 
} 
} 

enter image description here

EDIT:

So fand ich heraus, ob ich ein Layout-Tag in einem Standard-Preference-Objekt verwenden Sie es richtig auslegt. Ich kann das schaffen, aber ich würde es vorziehen, in der Lage zu sein, meine eigenen benutzerdefinierten Klassen zu erstellen, damit ich zusätzliche Logik in sie trennen kann. Hat jemand das schon mal gemacht oder ein Beispiel? Ich fühle mich wie ich nur einfach etwas fehlen darf ...

<android.support.v7.preference.Preference 
     android:layout="@layout/preference_add_motivating_photo"/> 

Antwort

0

nicht sicher, warum ich damals nicht daran denken habe aber die Antwort ist eine benutzerdefinierte Einstellung wie oben zu erstellen und dann die Layout-Eigenschaft verwenden in der XML für mein Layout. Einfach genug.

Verwandte Themen