Ustawienie
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja alfa |
|---|---|---|---|---|
| 26 lipca 2023 r. | 1.2.1 | - | - | - |
Deklarowanie zależności
Aby dodać zależność od ustawienia, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności od potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
Groovy
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") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Prześlij opinię
Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli znajdziesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nowy problem, zapoznaj się z istniejącymi problemami w tej bibliotece. Możesz oddać głos na istniejący problem, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.2
Wersja 1.2.1
26 lipca 2023 r.
Ukazała się wersja androidx.preference:preference:1.2.1. Wersja 1.2.1 zawiera te zatwierdzenia.
Poprawki błędów
PreferenceHeaderFragmentCompatprawidłowo obsługuje teraz systemowy przycisk Wstecz, gdy jest używany wComponentDialoglub gdy używasz bibliotek takich jak@AndroidEntryPointHilt, które opakowująContextfragmentu.- Ustawienie zależy teraz od Activity 1.5.1. (Ie5d22)
PreferenceHeaderFragmentCompat.onCreateInitialDetailFragmentpropaguje terazheader.extrasjako argumentyFragment.
Wersja 1.2.0
26 stycznia 2022 r.
Ukazały się wersje androidx.preference:preference:1.2.0 i androidx.preference:preference-ktx:1.2.0. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
- Dodano
PreferenceHeaderFragmentCompatdo ustawień dwupanelowych, które automatycznie dostosowują się do rozmiaru używanego urządzenia, dzięki czemu można ich używać na telefonach, urządzeniach składanych i tabletach. Panel nagłówka jest udostępniany przez zastąpienie metodyonCreatePreferenceHeader()wPreferenceHeaderFragmentCompat. Każdy element<Preference>w nagłówkuPreferenceFragmentCompat, który używaapp:fragment, spowoduje wyświetlenie tego fragmentu w drugim panelu szczegółów. Początkowy fragment szczegółów, który ma być wyświetlany, zanim zostanie ręcznie wybrane jakiekolwiek ustawienie, można dostosować, zastępująconCreateInitialDetailFragment(). Implementacja domyślna zwraca pierwsze ustawienie, w którym zdefiniowano fragment.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
return PreferenceHeader()
}
}
Do wielu interfejsów API, które wcześniej nie określały
@NonNullani@Nullable, dodano adnotacje o dopuszczalności wartości null. Jeśli możliwość przyjmowania wartości null wybrana w kodzie Kotlin nie odpowiada możliwości przyjmowania wartości null, która jest teraz zdefiniowana, może to spowodować przerwanie kompilacji kodu Kotlin.PreferenceFragmentCompatszuka teraz implementacji interfejsówOnPreferenceStartFragmentCallback,OnNavigateToScreenListeneriOnDisplayPreferenceDialogListenerw nadrzędnych fragmentach, zanim sprawdzi, czy kontekst hosta lub aktywność implementują te interfejsy.
Wersja 1.2.0-rc01
15 grudnia 2021 roku
Ukazały się wersje androidx.preference:preference:1.2.0-rc01 i androidx.preference:preference-ktx:1.2.0-rc01. Nie wprowadzono w nich żadnych zmian od wersji 1.2.0-beta01. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Wersja 1.2.0-beta01
17 listopada 2021 r.
Ukazały się wersje androidx.preference:preference:1.2.0-beta01 i androidx.preference:preference-ktx:1.2.0-beta01. Nie wprowadzono w nich żadnych zmian od wersji Preference 1.2.0-alpha02. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Wersja 1.2.0-alpha02
3 listopada 2021 r.
Ukazały się wersje androidx.preference:preference:1.2.0-alpha02 i androidx.preference:preference-ktx:1.2.0-alpha02. Wersja 1.2.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Do wielu interfejsów API, które wcześniej nie określały
@NonNullani@Nullable, dodano adnotacje o dopuszczalności wartości null. (I04252, Ie2cc0) - Usunięto interfejs API
openPreference()zPreferenceHeaderFragmentCompat– ta metoda jest wywoływana automatycznie i nie należy jej wywoływać ręcznie. (Ia6989)
Zmiany w zachowaniu
- Wywołania zwrotne PreferenceFragmentCompat dla
OnNavigateToScreenListeneriOnDisplayPreferenceDialogListenersą teraz zgodne z tym samym wzorcem coOnPreferenceTreeClickListeneri wyszukują prawidłowe odbiorniki w hierarchii fragmentów nadrzędnych, zanim sprawdzą, czy kontekst hosta lub aktywność implementują te interfejsy. (I7ae6c)
Wersja 1.2.0-alpha01
27 października 2021 r.
Ukazały się wersje androidx.preference:preference:1.2.0-alpha01 i androidx.preference:preference-ktx:1.2.0-alpha01. Wersja 1.2.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano
PreferenceHeaderFragmentCompatdo ustawień dwupanelowych (I9a2d8)
Zmiany w zachowaniu
Wywołania zwrotne ustawień dla OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback i OnPreferenceStartFragmentCallback można teraz implementować w kontekście innym niż aktywność. Przed sprawdzeniem getActivity() sprawdzamy, czy getContext() implementuje te wywołania zwrotne. Jeśli getContext() zwraca aktywność (co jest typowe), nie nastąpi żadna zmiana w zachowaniu.
Wywołanie
onPreferenceTreeClickwPreferenceFragmentCompatszuka teraz implementacji interfejsuOnPreferenceStartFragmentCallbackw nadrzędnych fragmentach, zanim weźmie pod uwagę implementację aktywności. (c64eed)
Wersja 1.1
Wersja 1.1.1
15 kwietnia 2020 roku
Ukazały się wersje androidx.preference:preference:1.1.1 i androidx.preference:preference-ktx:1.1.1. Wersja 1.1.1 zawiera te zatwierdzenia.
Poprawki błędów
PreferenceDialogFragmentCompatnie będzie już zgłaszaćIllegalStateExceptionpodczas rozszerzaniaFragmentContainerViewz pliku XML. (b/150051716)
Aktualizacje zależności
- Ustawienie zależy teraz od fragmentu
1.2.4. (aosp/1277317) - Zależność
preference-ktxzależy teraz odandroidx.core:core-ktx:1.1.0iandroidx.fragment:fragment-ktx:1.2.4, co odzwierciedla zależności głównego artefaktupreferencei zapewnia, że uaktualnieniepreference-ktxaktualizuje zarówno główny artefakt, jak i artefakt-ktxzależności przechodnich. (aosp/1277319)
Wersja 1.1.0
5 września 2019 r.
Ukazały się wersje androidx.preference:preference:1.1.0 i androidx.preference:preference-ktx:1.1.0. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Jeśli jest to pierwsza wersja 1.1.*, którą aktualizujesz, oto krótka lista większych zmian od ostatniej stabilnej wersji 1.0.0. Przydatne mogą być też przewodnik po ustawieniach, przykładowa aplikacja i prezentacja z Android Dev Summit.
Ważne zmiany od wersji 1.0.0
PreferenceFragmenti inne klasy używające fragmentów frameworka zostały wycofane. Zamiast nich należy używaćPreferenceFragmentCompati innych klas *compat.- Możesz teraz ustawić
SummaryProviderw ustawieniu, aby dynamicznie konfigurować jego podsumowanie za każdym razem, gdy ustawienie jest aktualizowane lub staje się widoczne dla użytkownika. Więcej informacji znajdziesz w przewodniku. - Dodano interfejs
EditTextPreference.OnBindEditTextListener. Umożliwia to dostosowanieEditTextwyświetlanego w odpowiednim oknie po powiązaniu okna. Jest to bezpośredni zamiennik używania atrybutów takich jakandroid:inputTypebezpośrednio wEditTextPreference, co nie jest obsługiwane w bibliotece AndroidX. Więcej informacji znajdziesz w przewodniku. - Dodano
Preference.setCopyingEnabled(). Gdy jest ustawiona, długie naciśnięcie ustawienia spowoduje wyświetlenie menu kontekstowego, które umożliwia skopiowanie podsumowania ustawienia. - Zaktualizowano styl
SeekBarPreference, aby był zgodny ze specyfikacjami Material. Inne zmiany wSeekBarPreferenceznajdziesz w szczegółowym dzienniku zmian. - Wprowadzono wiele poprawek błędów, aktualizacji stylu, poprawek zgodności z poziomem interfejsu API i ogólnych ulepszeń jakości.
Wersja 1.1.0-rc01
2 lipca 2019 r.
Ukazały się wersje androidx.preference:preference:1.1.0-rc01 i androidx.preference:preference-ktx:1.1.0-rc01. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Zmiany w interfejsie API
- Wycofanie
Preference#onInitializeAccessibilityNodeInfo - Ta metoda przekazywała informacje o węźle ułatwień dostępu dla konkretnego ustawienia, ale jest to niewłaściwa warstwa do tego dostosowania. Jeśli chcesz dostosować informacje o ułatwieniach dostępu, zastąp onBindViewHolder i dodaj informacje o ułatwieniach dostępu bezpośrednio do widoku.
Wersja 1.1.0-beta01
5 czerwca 2019 r.
Ukazały się wersje androidx.preference:preference:1.1.0-beta01 i androidx.preference:preference-ktx:1.1.0-beta01. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Ważne zmiany od wersji 1.1.0
Jeśli jest to pierwsza wersja 1.1.*, którą aktualizujesz, oto krótka lista większych zmian od ostatniej stabilnej wersji 1.1.0. Przydatne mogą być też przewodnik po ustawieniach, przykładowa aplikacja i prezentacja z Android Dev Summit.
- `PreferenceFragment` i inne klasy używające fragmentów frameworka zostały wycofane. Zamiast nich należy używać `PreferenceFragmentCompat` i innych klas *compat.
- Możesz teraz ustawić SummaryProvider w ustawieniu, aby dynamicznie konfigurować jego podsumowanie za każdym razem, gdy ustawienie jest aktualizowane lub staje się widoczne dla użytkownika. Więcej informacji znajdziesz w przewodniku.
- Dodano interfejs
EditTextPreference.OnBindEditTextListener. Umożliwia to dostosowanie EditText wyświetlanego w odpowiednim oknie po powiązaniu okna. Jest to bezpośredni zamiennik używania atrybutów takich jak android:inputType bezpośrednio w EditTextPreference, co nie jest obsługiwane w bibliotece AndroidX. Więcej informacji znajdziesz w przewodniku. - Dodano
Preference.setCopyingEnabled(). Gdy jest ustawiona, długie naciśnięcie ustawienia spowoduje wyświetlenie menu kontekstowego, które umożliwia skopiowanie podsumowania ustawienia. - Zaktualizowano styl SeekBarPreference, aby był zgodny ze specyfikacjami Material. Inne zmiany w SeekBarPreference znajdziesz w szczegółowym dzienniku zmian.
- Wprowadzono wiele poprawek błędów, aktualizacji stylu, poprawek zgodności z poziomem interfejsu API i ogólnych ulepszeń jakości.
Zmiany w interfejsie API od wersji 1.1.0-alpha05
- Usuwa getOnBindEditTextListener z publicznego interfejsu API. Podczas korzystania z tego interfejsu API należy używać tylko setOnBindEditTextListener.
Jeśli napotkasz jakieś problemy lub masz sugestie dotyczące nowych funkcji, zgłoś błąd tutaj.
Wersja 1.1.0-alpha05
7 maja 2019 r.
Ukazały się wersje androidx.preference:preference:1.1.0-alpha05 i androidx.preference:preference-ktx:1.1.0-alpha05. Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
- Zaktualizowano styl ustawień, których nie można wybrać – tytuł i podsumowanie mają teraz ten sam kolor, aby było jasne, że nie można z nimi wchodzić w interakcję i służą tylko do wyświetlania informacji.
- Uwaga: możesz rozważyć dodanie
enableCopying="true"do ustawień, których nie można wybrać, aby można było przytrzymać, aby skopiować podsumowanie.
Poprawki błędów
- Naprawiliśmy regresję, która powodowała, że po wybraniu PreferenceCategory i innych ustawień, których nie można wybrać, pojawiał się efekt fali.
- Naprawiliśmy problem z ułatwieniami dostępu, który powodował, że TalkBack nie widział DropDownPreference jako klikalnego.
- Naprawiliśmy kilka problemów z układem od prawej do lewej.
- Zaktualizowaliśmy niektóre adnotacje o możliwości przyjmowania wartości null w PreferenceFragmentCompat, aby były zgodne z fragmentem.
Wersja 1.1.0-alpha04
13 marca 2019 r.
Ukazały się wersje androidx.preference:preference:1.1.0-alpha04 i androidx.preference:preference-ktx:1.1.0-alpha04. Pełną listę zatwierdzeń zawartych w tej wersji znajdziesz tutaj.
Nowe funkcje
Aktualizacja SeekBarPreference!
- Zaktualizowano styl, aby był zgodny ze specyfikacjami Material.
- Etykieta wartości jest teraz domyślnie ukryta, ale nadal można ją wyświetlać za pomocą
app:showSeekBarValue="true"lubsetShowSeekBarValue(true). Ta etykieta nie jest częścią specyfikacji Material, ale rozumiemy, że jest często używana, dlatego będziemy ją nadal obsługiwać – mimo że nie zalecamy jej używania. - Etykieta wartości jest teraz aktualizowana podczas przeciągania SeekBar, a nie po jej zwolnieniu. Pamiętaj, że nie oznacza to, że wartość jest aktualizowana wewnętrznie. Poniżej znajdziesz nowy interfejs API, który umożliwia tę funkcję.
- Uwaga: mimo że jest to obsługiwane, należy unikać ustawiania podsumowania w SeekBarPreference, ponieważ nie jest to zamierzone i nie jest częścią specyfikacji Material.
- Etykieta wartości jest teraz domyślnie ukryta, ale nadal można ją wyświetlać za pomocą
- Dodaje obsługę ciągłych aktualizacji, dzięki czemu SeekBar może aktualizować zapisaną wartość podczas przeciągania. Można to włączyć w pliku XML lub programowo za pomocą
app:updatesContinuously="true"lubsetUpdatesContinuously(true). Będzie to wywoływane za każdym razem, gdy zmieni się położenie SeekBar na ekranie.
Zmiany w interfejsie API
- Dodaje brakujące adnotacje o dopuszczalności wartości null do
findPreference().
Poprawki błędów
- Naprawiliśmy błąd, który powodował, że odbiorniki menu kontekstowego nie były prawidłowo usuwane, jeśli kopiowanie nie było włączone.
Wersja 1.1.0-alpha03
7 lutego 2019 r.
androidx.preference:preference 1.1.0-alpha03
Ukazały się wersje androidx.preference:preference 1.1.0-alpha03 i androidx.preference:preference-ktx 1.1.0-alpha03 z następującymi zmianami.
Poprawki błędów
- Naprawiliśmy problem, który powodował, że w oknie EditTextPreference czasami nie wyświetlało się okienko kopiowania/wklejania.
- Naprawiliśmy problem, który powodował, że podstawowy adapter nie był prawidłowo wyrejestrowywany, co w określonych warunkach powodowało wycieki pamięci (b/121006469).
- Naprawiliśmy kilka awarii związanych z oknami, które występowały podczas zmiany konfiguracji (b/122167543)
- Naprawiliśmy problem, który powodował, że SummaryProvider nie działał w przypadku MultiSelectListPreference (b/123022772).
Wersja 1.1.0-alpha02
17 grudnia 2018 r.
Zapoznaj się też z niedawno zaktualizowanym przewodnikiem po ustawieniach i przykładową aplikacją.
Nowe funkcje
Dodano interfejs
EditTextPreference.OnBindEditTextListener. Umożliwia to dostosowanie EditText wyświetlanego w odpowiednim oknie po powiązaniu okna. Można np. ustawić niestandardowy typ danych wejściowych lub długość albo dodać TextWatcher.Dodano
Preference.setCopyingEnabled(). Gdy jest ustawiona, długie naciśnięcie ustawienia spowoduje wyświetlenie menu kontekstowego, które umożliwia skopiowanie podsumowania ustawienia. Można go używać do kopiowania informacji statycznych, takich jak identyfikatory specyficzne dla użytkownika lub informacje o wersji aplikacji.preferenceTheme jest teraz stosowany do motywu aktywności. Oznacza to, że podczas tworzenia ustawienia w kodzie nie musisz już używać kontekstu z
PreferenceManager#getContext()– możesz po prostu użyć kontekstu fragmentu lub aktywności.
Zmiany w interfejsie API
- Przebudowano
findPreference(), aby zwracał<T extends Preference>Oznacza to, że podczas korzystania z findPreference() nie musisz już jawnie rzutować ustawień. Na przykład,EditTextPreference preference = findPreference(“edit_text”)jest teraz prawidłowy.
Wersja 1.1.0-alpha01
5 listopada 2018 r.
Nowe funkcje
- Możesz teraz ustawić SummaryProvider w ustawieniu, aby dynamicznie konfigurować jego podsumowanie za każdym razem, gdy ustawienie jest aktualizowane lub staje się widoczne dla użytkownika.
- Dodano domyślne implementacje SummaryProvider dla ListPreference i EditTextPreference, które po ustawieniu automatycznie aktualizują podsumowanie ustawienia, aby odzwierciedlało jego zapisaną wartość lub „Nie ustawiono”, jeśli nie zapisano żadnej wartości. Można je ustawić za pomocą app:useSimpleSummaryProvider=”true”.
- Dodano PreferenceGroup#removePreferenceRecursively, które rekurencyjnie znajduje i usuwa ustawienie z grupy lub zagnieżdżonej grupy w hierarchii.
Zmiany w interfejsie API
- PreferenceFragment i inne klasy używające fragmentów frameworka zostały wycofane. Zamiast nich należy używać PreferenceFragmentCompat i innych klas *compat.
Poprawki błędów
- Naprawiliśmy problem, który powodował, że iconSpaceReserved nie działał prawidłowo w przypadku PreferenceCategories.
- Naprawiliśmy problem, który powodował, że PreferenceCategories nie używały colorAccent do kolorowania tytułu w wersjach interfejsu API starszych niż 21.
- Naprawiliśmy niektóre niespójności układu SeekBarPreference w wersjach interfejsu API starszych niż 21.