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);
}
}
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"/>