Vorlieben
| Letzte Aktualisierung | Stabile Release | Releasekandidat | Beta-Release | Alpha-Release |
|---|---|---|---|---|
| 26. Juli 2023 | 1.2.1 | - | - | - |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von Preference hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:
Cool
dependencies { def preference_version = "1.2.1" // Java language implementation implementation "androidx.preference:preference:$preference_version" // Kotlin implementation "androidx.preference:preference-ktx:$preference_version" }
Kotlin
dependencies { val preference_version = "1.2.1" // Java language implementation implementation("androidx.preference:preference:$preference_version") // Kotlin implementation("androidx.preference:preference-ktx:$preference_version") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.2
Version 1.2.1
26. Juli 2023
androidx.preference:preference:1.2.1 ist veröffentlicht. Version 1.2.1 enthält diese Commits.
Fehlerkorrekturen
PreferenceHeaderFragmentCompatverarbeitet jetzt den System-Button „Zurück“ korrekt, wenn sie in einemComponentDialogoder bei Verwendung von Bibliotheken wie@AndroidEntryPointvon Hilt verwendet wird, die dieContextdes Fragments umschließen.- Die Einstellung hängt jetzt von Activity 1.5.1 ab. (Ie5d22)
PreferenceHeaderFragmentCompat.onCreateInitialDetailFragmentübergibt jetztheader.extrasalsFragment-Argumente.
Version 1.2.0
26. Januar 2022
androidx.preference:preference:1.2.0 und androidx.preference:preference-ktx:1.2.0 sind veröffentlicht. Version 1.2.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.1.0
PreferenceHeaderFragmentCompatfür die zweispaltige Ansicht hinzugefügt, die sich automatisch an die Größe des verwendeten Geräts anpasst und somit für Smartphones, Falt- und Tablet-Geräte geeignet ist. Die Kopfzeile wird durch Überschreiben der MethodeonCreatePreferenceHeader()inPreferenceHeaderFragmentCompatbereitgestellt. Jedes<Preference>im HeaderPreferenceFragmentCompat, dasapp:fragmentverwendet, führt dazu, dass das Fragment im zweiten Detailbereich angezeigt wird. Das erste Detailfragment, das angezeigt werden soll, bevor eine Einstellung manuell ausgewählt wird, kann durch Überschreiben vononCreateInitialDetailFragment()angepasst werden. Die Standardimplementierung gibt die erste Einstellung zurück, für die ein Fragment definiert ist.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
return PreferenceHeader()
}
}
Viele APIs, in denen zuvor
@NonNulloder@Nullablenicht angegeben war, wurden mit Null-Zulässigkeits-Annotationen versehen. Dies ist eine potenziell funktionsgefährdende Änderung für Kotlin, wenn die von Ihnen in Ihrem Kotlin-Code ausgewählte Null-Zulässigkeit nicht mit der jetzt definierten Null-Zulässigkeit übereinstimmt.PreferenceFragmentCompatsucht jetzt nach Implementierungen der SchnittstellenOnPreferenceStartFragmentCallback,OnNavigateToScreenListenerundOnDisplayPreferenceDialogListenerin übergeordneten Fragmenten, bevor geprüft wird, ob der Hosting-Kontext oder die Hosting-Aktivität diese Schnittstellen implementiert.
Version 1.2.0-rc01
15. Dezember 2021
androidx.preference:preference:1.2.0-rc01 und androidx.preference:preference-ktx:1.2.0-rc01 werden ohne Änderungen seit 1.2.0-beta01 veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
Version 1.2.0-beta01
17. November 2021
androidx.preference:preference:1.2.0-beta01 und androidx.preference:preference-ktx:1.2.0-beta01 werden ohne Änderungen gegenüber Preference 1.2.0-alpha02 veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Version 1.2.0-alpha02
3. November 2021
androidx.preference:preference:1.2.0-alpha02 und androidx.preference:preference-ktx:1.2.0-alpha02 sind veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
API-Änderungen
- Viele APIs, in denen zuvor
@NonNulloder@Nullablenicht angegeben war, wurden mit Null-Zulässigkeits-Annotationen versehen. (I04252, Ie2cc0) - Die
openPreference()-API wurde ausPreferenceHeaderFragmentCompatentfernt. Diese Methode wird für Sie aufgerufen und sollte nicht manuell aufgerufen werden. (Ia6989)
Geändertes Verhalten
- PreferenceFragmentCompat-Callbacks für
OnNavigateToScreenListenerundOnDisplayPreferenceDialogListenerfolgen jetzt demselben Muster wieOnPreferenceTreeClickListenerund suchen in der Hierarchie des übergeordneten Fragments nach gültigen Listenern, bevor geprüft wird, ob der Hosting-Kontext oder die Hosting-Aktivität diese Schnittstellen implementiert. (I7ae6c)
Version 1.2.0-alpha01
27. Oktober 2021
androidx.preference:preference:1.2.0-alpha01 und androidx.preference:preference-ktx:1.2.0-alpha01 sind veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
PreferenceHeaderFragmentCompatfür die Einstellung mit zwei Bereichen hinzugefügt (I9a2d8)
Geändertes Verhalten
Die Preference-Callbacks für OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback und OnPreferenceStartFragmentCallback können jetzt in einem Context implementiert werden, der keine Activity ist. getContext() wird geprüft, um festzustellen, ob diese Callbacks implementiert werden, bevor getActivity() geprüft wird. Wenn getContext() eine Activity zurückgibt (der häufige Fall), ändert sich das Verhalten nicht.
Beim Aufruf von
onPreferenceTreeClickdurchPreferenceFragmentCompatwird jetzt zuerst nach Implementierungen derOnPreferenceStartFragmentCallback-Schnittstelle in übergeordneten Fragmenten gesucht, bevor die Implementierung der Aktivität berücksichtigt wird. (c64eed)
Version 1.1
Version 1.1.1
15. April 2020
androidx.preference:preference:1.1.1 und androidx.preference:preference-ktx:1.1.1 sind veröffentlicht. Version 1.1.1 enthält diese Commits.
Fehlerkorrekturen
PreferenceDialogFragmentCompatlöst beim Aufblasen einesFragmentContainerViewaus XML keinenIllegalStateExceptionmehr aus. (b/150051716)
Abhängigkeitsupdates
- Die Einstellung hängt jetzt vom Fragment
1.2.4ab. (aosp/1277317) - Die
preference-ktx-Abhängigkeit hängt jetzt vonandroidx.core:core-ktx:1.1.0undandroidx.fragment:fragment-ktx:1.2.4ab. Das spiegelt die Abhängigkeiten des Hauptartefaktspreferencewider und sorgt dafür, dass beim Aktualisieren vonpreference-ktxsowohl das Haupt- als auch das-ktx-Artefakt der transitiven Abhängigkeiten aktualisiert werden. (aosp/1277319)
Version 1.1.0
5. September 2019
androidx.preference:preference:1.1.0 und androidx.preference:preference-ktx:1.1.0 sind veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Wenn dies das erste 1.1.*-Release ist, auf das Sie aktualisieren, finden Sie hier eine kurze Liste der größeren Änderungen seit dem letzten stabilen Release, 1.0.0. Möglicherweise sind auch der Leitfaden zu den Einstellungen, die Beispiel-App und der Vortrag beim Android Dev Summit hilfreich.
Wichtige Änderungen seit Version 1.0.0
PreferenceFragmentund andere Klassen, die Framework-Fragmente verwenden, sind veraltet. Sie sollten stattdessenPreferenceFragmentCompatund andere *compat-Klassen verwenden.- Sie können jetzt eine
SummaryProviderfür eine Einstellung festlegen, um die Zusammenfassung dynamisch zu konfigurieren, wenn die Einstellung aktualisiert wird oder für den Nutzer sichtbar wird. Weitere Informationen finden Sie in diesem Leitfaden. - Die
EditTextPreference.OnBindEditTextListener-Schnittstelle wurde hinzugefügt. So kann dieEditText, die im entsprechenden Dialogfeld angezeigt wird, angepasst werden, nachdem das Dialogfeld gebunden wurde. Dies ist ein direkter Ersatz für die Verwendung von Attributen wieandroid:inputTypedirekt fürEditTextPreference, was in der AndroidX-Bibliothek nicht unterstützt wird. Weitere Informationen finden Sie in diesem Leitfaden. Preference.setCopyingEnabled()hinzugefügt: Wenn diese Option festgelegt ist, wird durch langes Drücken auf die Einstellung ein Kontextmenü angezeigt, in dem die Zusammenfassung der Einstellung kopiert werden kann.- Das
SeekBarPreference-Styling wurde aktualisiert, um den Material-Spezifikationen zu entsprechen. Weitere Änderungen anSeekBarPreferencefinden Sie im detaillierten Änderungs-Log. - Viele Fehlerkorrekturen, Stilaktualisierungen, Korrekturen der API-Level-Kompatibilität und allgemeine Verbesserungen der Nutzerfreundlichkeit.
Version 1.1.0-rc01
2. Juli 2019
androidx.preference:preference:1.1.0-rc01 und androidx.preference:preference-ktx:1.1.0-rc01 sind veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
API-Änderungen
Preference#onInitializeAccessibilityNodeInfoeinstellen- Mit dieser Methode wurden Informationen zum Barrierefreiheitsknoten für eine bestimmte Einstellung bereitgestellt. Das ist jedoch die falsche Ebene für diese Anpassung. Wenn Sie die Informationen zur Barrierefreiheit anpassen möchten, sollten Sie stattdessen „onBindViewHolder“ überschreiben und der Ansicht direkt Informationen zur Barrierefreiheit hinzufügen.
Version 1.1.0-beta01
5. Juni 2019
androidx.preference:preference:1.1.0-beta01 und androidx.preference:preference-ktx:1.1.0-beta01 sind veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Wichtige Änderungen seit Version 1.1.0
Wenn Sie zum ersten Mal auf eine 1.1.*-Version aktualisieren, finden Sie hier eine kurze Liste der größeren Änderungen seit der letzten stabilen Version 1.1.0. Möglicherweise sind auch der Leitfaden zu den Einstellungen, die Beispiel-App und der Vortrag beim Android Dev Summit hilfreich.
- PreferenceFragment und andere Klassen, die Framework-Fragmente verwenden, sind veraltet. Verwenden Sie stattdessen PreferenceFragmentCompat und andere *compat-Klassen.
- Sie können jetzt einen SummaryProvider für eine Preference festlegen, um die Zusammenfassung dynamisch zu konfigurieren, wenn die Preference aktualisiert wird oder für den Nutzer sichtbar wird. Weitere Informationen finden Sie in diesem Leitfaden.
- Die
EditTextPreference.OnBindEditTextListener-Schnittstelle wurde hinzugefügt. Dadurch kann das im entsprechenden Dialogfeld angezeigte EditText angepasst werden, nachdem das Dialogfeld gebunden wurde. Dies ist ein direkter Ersatz für die Verwendung von Attributen wie „android:inputType“ direkt in der EditTextPreference, die in der AndroidX-Bibliothek nicht unterstützt wird. Weitere Informationen finden Sie in diesem Leitfaden. Preference.setCopyingEnabled()hinzugefügt: Wenn diese Option festgelegt ist, wird durch langes Drücken auf die Einstellung ein Kontextmenü angezeigt, in dem die Zusammenfassung der Einstellung kopiert werden kann.- Das Styling von SeekBarPreference wurde aktualisiert, um den Material-Spezifikationen zu entsprechen. Weitere Änderungen an SeekBarPreference finden Sie im detaillierten Changelog.
- Viele Fehlerkorrekturen, Stilaktualisierungen, Korrekturen der API-Level-Kompatibilität und allgemeine Verbesserungen der Nutzerfreundlichkeit.
API-Änderungen seit Version 1.1.0-alpha05
- Entfernt „getOnBindEditTextListener“ aus der öffentlichen API. „setOnBindEditTextListener“ sollte nur bei der Interaktion mit dieser API verwendet werden.
Wenn Probleme auftreten oder Sie Vorschläge für neue Funktionen haben, melden Sie uns diese bitte hier.
Version 1.1.0-alpha05
7. Mai 2019
androidx.preference:preference:1.1.0-alpha05 und androidx.preference:preference-ktx:1.1.0-alpha05 sind veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
- Das Design für nicht auswählbare Einstellungen wurde aktualisiert. Titel und Zusammenfassung haben jetzt dieselbe Farbe, um deutlich zu machen, dass sie nicht interaktiv sind und nur zum Anzeigen von Informationen verwendet werden.
- Hinweis: Es empfiehlt sich,
enableCopying="true"zu den nicht auswählbaren Einstellungen hinzuzufügen, damit Nutzer die Zusammenfassung durch langes Drücken kopieren können.
Diverse Fehlerkorrekturen
- Es wurde ein Fehler behoben, bei dem die Auswahl von „PreferenceCategory“ und anderen nicht auswählbaren Einstellungen einen Ripple-Effekt hatte.
- Ein Bedienungshilfenproblem wurde behoben, bei dem DropDownPreference in TalkBack nicht als anklickbar erkannt wurde.
- Einige Probleme mit dem RTL-Layout behoben
- Einige Nullable-Anmerkungen in PreferenceFragmentCompat wurden aktualisiert, damit sie mit Fragment übereinstimmen.
Version 1.1.0-alpha04
13. März 2019
androidx.preference:preference:1.1.0-alpha04 und androidx.preference:preference-ktx:1.1.0-alpha04 sind veröffentlicht. Eine vollständige Liste der in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
Das SeekBarPreference-Update!
- Das Styling wurde aktualisiert, um den Material-Spezifikationen zu entsprechen.
- Die Wertbezeichnung ist jetzt standardmäßig ausgeblendet, kann aber weiterhin mit
app:showSeekBarValue="true"odersetShowSeekBarValue(true)angezeigt werden. Dieses Label ist nicht Teil der Material-Spezifikation, wird aber häufig verwendet. Wir werden es daher weiterhin unterstützen, auch wenn wir davon abraten. - Das Wertlabel wird jetzt aktualisiert, während der SeekBar gezogen wird, und nicht erst, wenn er losgelassen wird. Das bedeutet jedoch nicht, dass der Wert intern aktualisiert wird. Unten finden Sie eine neue API, die diese Funktion ermöglicht.
- Hinweis: Obwohl es unterstützt wird, sollten Sie für SeekBarPreference keine Zusammenfassung festlegen, da dies nicht vorgesehen ist und nicht Teil der Material-Spezifikation ist.
- Die Wertbezeichnung ist jetzt standardmäßig ausgeblendet, kann aber weiterhin mit
- Unterstützung für kontinuierliche Aktualisierungen wird hinzugefügt, sodass der gespeicherte Wert der SeekBar aktualisiert werden kann, während die SeekBar gezogen wird. Dies kann über XML oder programmatisch mit
app:updatesContinuously="true"odersetUpdatesContinuously(true)aktiviert werden. Dieses Ereignis wird immer dann ausgelöst, wenn sich die Position der Seekbar auf dem Bildschirm ändert.
API-Änderungen
- Fügt fehlende Anmerkungen zur Null-Zulässigkeit zu
findPreference()hinzu.
Diverse Fehlerkorrekturen
- Ein Fehler wurde behoben, bei dem Kontextmenü-Listener nicht richtig entfernt wurden, wenn das Kopieren nicht aktiviert ist.
Version 1.1.0-alpha03
07. Februar 2019
androidx.preference:preference 1.1.0-alpha03
androidx.preference:preference 1.1.0-alpha03 und androidx.preference:preference-ktx 1.1.0-alpha03 werden mit den folgenden Änderungen veröffentlicht.
Diverse Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem das Pop-up zum Kopieren/Einfügen manchmal nicht im Dialogfeld von EditTextPreference angezeigt wurde.
- Ein Problem wurde behoben, bei dem der zugrunde liegende Adapter nicht richtig abgemeldet wurde, was unter bestimmten Bedingungen zu Speicherlecks führte (b/121006469).
- Es wurden einige dialogbezogene Abstürze behoben, die bei Konfigurationsänderungen aufgetreten sind (b/122167543).
- Das Problem, dass SummaryProvider für MultiSelectListPreference nicht funktioniert, wurde behoben (b/123022772).
Version 1.1.0-alpha02
17. Dezember 2018
Sehen Sie sich auch den kürzlich aktualisierten Leitfaden für Einstellungen und die Beispiel-App an.
Neue Funktionen
EditTextPreference.OnBindEditTextListener-Schnittstelle hinzugefügt Dadurch kann das im entsprechenden Dialogfeld angezeigte EditText angepasst werden, nachdem das Dialogfeld gebunden wurde. Sie können beispielsweise einen benutzerdefinierten Eingabetyp bzw. eine benutzerdefinierte Eingabelänge festlegen oder einen TextWatcher hinzufügen.Preference.setCopyingEnabled()hinzugefügt Wenn diese Option festgelegt ist, wird durch langes Drücken auf die Einstellung ein Kontextmenü angezeigt, in dem die Zusammenfassung der Einstellung kopiert werden kann. Damit kann das Kopieren statischer Informationen wie nutzerspezifischer IDs oder Informationen zur Anwendungsversion ermöglicht werden.„preferenceTheme“ wird jetzt auf das Aktivitätsthema angewendet. Das bedeutet, dass Sie beim Erstellen einer Preference aus dem Code nicht mehr den Kontext aus
PreferenceManager#getContext()verwenden müssen, sondern einfach den Kontext Ihres Fragments oder Ihrer Aktivität.
API-Änderungen
findPreference()wurde umgestaltet, um<T extends Preference>zurückzugeben. Das bedeutet, dass Sie beim Verwenden von findPreference() nicht explizit Preferences casten müssen. Beispiel:EditTextPreference preference = findPreference(“edit_text”)ist jetzt gültiger Code.
Version 1.1.0-alpha01
5. November 2018
Neue Funktionen
- Sie können jetzt einen SummaryProvider für eine Preference festlegen, um die Zusammenfassung dynamisch zu konfigurieren, wenn die Preference aktualisiert wird oder für den Nutzer sichtbar wird.
- Es wurden Standardimplementierungen von SummaryProvider für ListPreference und EditTextPreference hinzugefügt. Wenn diese festgelegt sind, wird die Zusammenfassung der Preference automatisch aktualisiert, um den gespeicherten Wert widerzuspiegeln. Wenn kein Wert gespeichert wurde, wird „Not Set“ (Nicht festgelegt) angezeigt. Diese können mit app:useSimpleSummaryProvider=“true” festgelegt werden.
- Die Methode „PreferenceGroup#removePreferenceRecursively“ wurde hinzugefügt. Sie sucht rekursiv nach einer Einstellung in der Gruppe oder einer verschachtelten Gruppe weiter unten in der Hierarchie und entfernt sie.
API-Änderungen
- PreferenceFragment und andere Klassen, die Framework-Fragments verwenden, sind veraltet. Verwenden Sie stattdessen PreferenceFragmentCompat und andere Compat-Klassen.
Diverse Fehlerkorrekturen
- Das Problem, dass „iconSpaceReserved“ bei PreferenceCategories nicht richtig funktioniert hat, wurde behoben.
- Das Problem, dass PreferenceCategories unter API 21 nicht „colorAccent“ für die Farbe des Titels verwendet haben, wurde behoben.
- Es wurden einige Layout-Inkonsistenzen bei SeekBarPreference unter API 21 behoben.