Ustawienie
| Najnowsza aktualizacja | Wersja stabilna | Kandydat do wydania | Wersja Beta | Wydanie alfa | 
|---|---|---|---|---|
| 26 lipca 2023 r. | 1.2.1 | - | - | - | 
Deklarowanie zależności
Aby dodać zależność od Preferencji, musisz dodać repozytorium Google Maven do swojego w projektach AI. Zapoznaj się z repozytorium Google Maven. .
Dodaj zależności artefaktów, których potrzebujesz w pliku build.gradle
aplikacji lub modułu:
Odlotowe
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.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli odkryjesz nowe problemy jak ulepszyć tę bibliotekę. Przyjrzyj się istniejące problemy w tej bibliotece, zanim utworzysz nową. Możesz zagłosować nad istniejącym problemem przez klikając przycisk gwiazdki.
Zobacz dokumentację narzędzia Issue Tracker. .
Wersja 1.2
Wersja 1.2.1
26 lipca 2023 r.
Usługa androidx.preference:preference:1.2.1 została zwolniona. Wersja 1.2.1 zawiera te zatwierdzenia.
Poprawki błędów
- PreferenceHeaderFragmentCompatteraz prawidłowo obsługuje systemowy przycisk Wstecz, gdy jest używany w obrębie- ComponentDialoglub podczas korzystania z bibliotek takich jak- @AndroidEntryPointHilta, które opakowują kod- Contextfragmentu.
- Preferencje zależą teraz od Aktywności 1.5.1. (IE5d22)
- Funkcja PreferenceHeaderFragmentCompat.onCreateInitialDetailFragmentprzekazujeheader.extrasjako argumentyFragment.
Wersja 1.2.0
26 stycznia 2022 r.
androidx.preference:preference:1.2.0 i androidx.preference:preference-ktx:1.2.0 zostały udostępnione. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
- Dodano PreferenceHeaderFragmentCompatw przypadku ustawienia z 2 panelami, które automatycznie dostosowują się do rozmiaru używanego urządzenia, dzięki czemu można z niego korzystać 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 korzysta z atrybutuapp:fragment, spowoduje, że dany fragment pojawi się w drugim panelu szczegółów. Początkowy fragment szczegółów, który powinien być wyświetlany przed ręcznym wybraniem preferencji, można dostosować, zastępując wartośćonCreateInitialDetailFragment(). Implementacja domyślna zwraca pierwsze ustawienie, które ma zdefiniowany fragment.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
    override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
        return PreferenceHeader()
    }
}
- Do wielu pól wyboru dodano adnotacje o dopuszczaniu wartości null Interfejsy API, które wcześniej nie określały właściwości - @NonNullani- @NullableJest to potencjalnie zmiana powodująca uszkodzenie źródła Kotlin, jeśli wartość null wybrana w kodzie Kotlin nie pasuje do zdefiniowanej teraz dopuszczalności wartości null.
- PreferenceFragmentCompatszuka teraz implementacji interfejsu- OnPreferenceStartFragmentCallback,- OnNavigateToScreenListeneri- OnDisplayPreferenceDialogListenerwe fragmentach nadrzędnych, zanim sprawdzi, czy kontekst lub aktywność hostują te interfejsy.
Wersja 1.2.0-rc01
15 grudnia 2021 roku
Wersje androidx.preference:preference:1.2.0-rc01 i androidx.preference:preference-ktx:1.2.0-rc01 zostały udostępnione bez zmian od 1.2.0-beta01. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Wersja 1.2.0-beta01
17 listopada 2021 r.
Wersje androidx.preference:preference:1.2.0-beta01 i androidx.preference:preference-ktx:1.2.0-beta01 zostały udostępnione bez zmian w stosunku do Preferencji 1.2.0-alfa02. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Wersja 1.2.0-alfa02
3 listopada 2021 r.
androidx.preference:preference:1.2.0-alpha02 i androidx.preference:preference-ktx:1.2.0-alpha02 zostały udostępnione. Wersja 1.2.0-alfa02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Do wielu pól wyboru dodano adnotacje o dopuszczaniu wartości null
Interfejsy API, które wcześniej nie określały właściwości @NonNullani@Nullable(I04252, IE2cc0)
- Interfejs API openPreference()został usunięty z:PreferenceHeaderFragmentCompat– ta metoda jest został wywołany za Ciebie i nie powinien być wywoływany ręcznie. (IA6989).
Zmiany w działaniu
- Wywołania zwrotne PreferenceFragmentCompat dla
OnNavigateToScreenListeneriOnDisplayPreferenceDialogListenerteraz postępuj zgodnie z ten sam wzorzec coOnPreferenceTreeClickListeneri wyszukaj nadrzędną hierarchię fragmentów pod kątem prawidłowych słuchacze przed sprawdzeniem, czy Kontekst lub aktywność implementują te interfejsy. (I7ae6c).
Wersja 1.2.0-alpha01
27 października 2021 roku
androidx.preference:preference:1.2.0-alpha01 i androidx.preference:preference-ktx:1.2.0-alpha01 zostały udostępnione. Wersja 1.2.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano PreferenceHeaderFragmentCompatdla ustawienia 2 paneli (I9a2d8)
Zmiany w działaniu
- Wywołania zwrotne preferencji OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback i OnPreferenceStartFragmentCallback, mogą być teraz zaimplementowane w kontekście innym niż aktywność. Metoda getContext() jest sprawdzana w celu sprawdzenia, czy te wywołania zwrotne są stosowane przed sprawdzeniem funkcji getActivity(). Jeśli funkcja getContext() zwraca działanie (typowy przypadek), nie powoduje to żadnej zmiany w działaniu. 
- Funkcja wywołania strony - onPreferenceTreeClickprzez użytkownika- PreferenceFragmentCompatszuka teraz implementacji interfejsu- OnPreferenceStartFragmentCallbackw fragmentach nadrzędnych, zanim rozważy wdrożenie działania. (C64EED)
Wersja 1.1
Wersja 1.1.1
15 kwietnia 2020 roku
androidx.preference:preference:1.1.1 i androidx.preference:preference-ktx:1.1.1 zostały udostępnione. Wersja 1.1.1 zawiera te zatwierdzenia.
Poprawki błędów
- PreferenceDialogFragmentCompatnie będzie już wysyłać zapytań- IllegalStateExceptionpodczas uzupełniania wartości- FragmentContainerViewz pliku XML. (B/150051716)
Aktualizacje zależności
- Preferencje zależą teraz od fragmentu 1.2.4. (Aosp/1277317)
- Zależność preference-ktxzależy teraz od elementówandroidx.core:core-ktx:1.1.0iandroidx.fragment:fragment-ktx:1.2.4, co odzwierciedla zależności głównego artefaktupreferencei uaktualnianiepreference-ktxpowoduje zaktualizowanie zarówno głównego, jak i-ktxartefaktu zależności pośrednich. (Aosp/1277319).
Wersja 1.1.0
5 września 2019 r.
androidx.preference:preference:1.1.0 i androidx.preference:preference-ktx:1.1.0 zostały udostępnione.  Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Jeśli jest to pierwsza wersja 1.1.*, którą aktualizujesz, oto zwięzła lista większych zmian od ostatniej wersji stabilnej (1.0.0).  Przydatne informacje znajdziesz też w przewodniku po ustawieniach, w przykładowej aplikacji i w artykule o Android Dev Summit.
Ważne zmiany wprowadzone od wersji 1.0.0
- Klasy PreferenceFragmenti inne klasy korzystające z fragmentów platformy zostały wycofane. użyj klasyPreferenceFragmentCompati innych *klas kompatybilnych.
- Teraz możesz ustawić SummaryProviderw preferencjach, aby dynamicznie konfigurować podsumowanie za każdym razem, gdy ustawienie zostanie zaktualizowane lub stanie się widoczne dla użytkownika. Więcej informacji znajdziesz w przewodniku.
- Dodano interfejs EditTextPreference.OnBindEditTextListener. Umożliwia to dostosowanie paneluEditTextwyświetlanego w odpowiednim oknie po jego powiązaniu. Jest to bezpośrednia metoda zastępująca używanie atrybutów takich jakandroid:inputTypebezpośrednio wEditTextPreference, które nie są obsługiwane w bibliotece AndroidaX. Więcej informacji znajdziesz w przewodniku.
- Dodano ustawienie Preference.setCopyingEnabled()Po ustawieniu i przytrzymaniu preferencji wyświetli się menu kontekstowe, które umożliwia skopiowanie podsumowania preferencji.
- Zaktualizowano styl SeekBarPreference, aby był zgodny ze specyfikacją Material. Inne zmiany w elemencieSeekBarPreferenceznajdziesz w szczegółowym dzienniku zmian.
- Dużo poprawek błędów, aktualizacji stylu, zgodności z poziomem interfejsu API i ogólnych ulepszeń QOL.
Wersja 1.1.0-rc01
2 lipca 2019 r.
androidx.preference:preference:1.1.0-rc01 i androidx.preference:preference-ktx:1.1.0-rc01 zostały udostępnione.  Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Zmiany interfejsu API
- Zrezygnuj z umowy Preference#onInitializeAccessibilityNodeInfo
- Ta metoda przekazała informacje o węźle ułatwień dostępu przez serwer proxy dla określonego preferencji, ale to nie jest warstwa w przypadku tego dostosowania. Jeśli chcesz dostosować informacje o ułatwieniach dostępu, zastąp ustawienie onBindViewHolder i dodaj informacje o ułatwieniach dostępu bezpośrednio do widoku.
Wersja 1.1.0-beta01
5 czerwca 2019 r.
androidx.preference:preference:1.1.0-beta01 i androidx.preference:preference-ktx:1.1.0-beta01 zostały udostępnione.  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 zwięzła lista większych zmian od ostatniej stabilnej wersji 1.1.0. Przydatne informacje znajdziesz też w przewodniku po ustawieniach, w przykładowej aplikacji i w artykule o Android Dev Summit.
- Fragment PreferenceFragment i inne klasy korzystające z fragmentów platformy zostały wycofane – zamiast nich należy używać PreferenceFragmentCompat i innych klas zgodnych z kompatybilnością.
- Teraz możesz ustawić parametr PodsumowanieProvider w polu Preference, aby dynamicznie konfigurować podsumowanie za każdym razem, gdy ustawienie zostanie zaktualizowane lub staje się widoczne dla użytkownika. Więcej informacji znajdziesz w przewodniku.
- Dodano interfejs EditTextPreference.OnBindEditTextListener. Umożliwia to dostosowanie elementu EditText wyświetlanego w odpowiednim oknie po powiązaniu tego okna. Jest to bezpośrednie zastąpienie atrybutów takich jak android:inputType bezpośrednio w elemencie EditTextPreference, który nie jest obsługiwany w bibliotece AndroidaX. Więcej informacji znajdziesz w przewodniku.
- Dodano ustawienie Preference.setCopyingEnabled()Po ustawieniu i przytrzymaniu preferencji wyświetli się menu kontekstowe, które umożliwia skopiowanie podsumowania preferencji.
- Zaktualizowano styl SeekBarPreference, tak aby był zgodny ze specyfikacją Material. Informacje o innych zmianach w SeekBarPreference znajdziesz w szczegółowym dzienniku zmian.
- Dużo poprawek błędów, aktualizacji stylu, zgodności z poziomem interfejsu API i ogólnych ulepszeń QOL.
Zmiany interfejsu API od wersji 1.1.0-alfa05
- Usuwa metodę getOnBindEditTextListener z publicznego interfejsu API. Podczas interakcji z tym interfejsem API wystarczy używać funkcji setOnBindEditTextListener.
Jeśli napotkasz jakieś problemy lub masz sugestie dotyczące nowych funkcji, zgłoś błędy tutaj.
Wersja 1.1.0-alpha05
7 maja 2019 r.
androidx.preference:preference:1.1.0-alpha05 i androidx.preference:preference-ktx:1.1.0-alpha05 zostały udostępnione.  Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
- Zmieniliśmy styl ustawień, których nie można wybrać – tytuł i podsumowanie są teraz w tym samym kolorze, aby jasno zaznaczyć, że nie można z nimi korzystać i służą tylko do wyświetlania informacji.
- Uwaga: do preferencji, których nie możesz wybrać, możesz dodać atrybut enableCopying="true". Przytrzymaj, aby skopiować podsumowanie.
Poprawki błędów.
- Naprawiono regresję, w wyniku której po wybraniu kategorii PreferenceCategory i innych preferencji nie można było wybrać fazy.
- Rozwiązaliśmy problem z ułatwieniami dostępu, który powodował, że ustawienie DropDownPreference nie było rozpoznawane w TalkBack jako klikalny
- Usunięto niektóre problemy z układem od prawej do lewej.
- Zaktualizowano niektóre adnotacje dopuszczone do wartości null w pliku PreferenceFragmentCompat tak, aby pasowały do fragmentu
Wersja 1.1.0-alfa04
13 marca 2019 r.
androidx.preference:preference:1.1.0-alpha04 i androidx.preference:preference-ktx:1.1.0-alpha04 zostały udostępnione.  Pełną listę zatwierdzeń zawartych w tej wersji znajdziesz tutaj.
Nowe funkcje
Nowe informacje na temat: SeekBarPreference
- Styl został zaktualizowany, aby był zgodny ze specyfikacją materiału
- Etykieta wartości jest teraz domyślnie ukryta, ale nadal można ją wyświetlać przy użyciu funkcji app:showSeekBarValue="true"lubsetShowSeekBarValue(true). Ta etykieta nie jest częścią specyfikacji Material Design, ale zdajemy sobie sprawę, że jest intensywnie wykorzystywana, dlatego nadal będziemy ją obsługiwać, nawet jeśli nie zalecamy jej używania.
- Etykieta wartości jest teraz aktualizowana podczas przeciągania paska przewijania, a nie po jego zwolnieniu. Nie oznacza to, że wartość jest aktualizowana wewnętrznie. Poniżej znajdziesz nowy interfejs API, który umożliwia tę funkcję.
- Uwaga: chociaż jest to obsługiwane, należy unikać ustawiania podsumowania dla 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ć przy użyciu funkcji 
- Dodano obsługę ciągłych aktualizacji, dzięki czemu pasek przewijania może aktualizować zapisaną wartość podczas przeciągania paska przewijania. Możesz włączyć tę opcję za pomocą kodu XML lub automatycznie za pomocą app:updatesContinuously="true"lubsetUpdatesContinuously(true). Będzie się ona uruchamiać przy każdej zmianie pozycji paska przewijania na ekranie.
Zmiany interfejsu API
- Dodaje do pola findPreference()brakujące adnotacje dotyczące wartości null
Poprawki błędów.
- Naprawiono błąd polegający na tym, że detektory menu kontekstowego nie były prawidłowo usuwane, jeśli kopiowanie nie było włączone.
Wersja 1.1.0-alfa03
7 lutego 2019 r.
androidx.preference:preference 1.1.0-alfa03
androidx.preference:preference 1.1.0-alpha03 i
androidx.preference:preference-ktx 1.1.0-alpha03 są publikowane z
następujących zmian.
Poprawki błędów.
- Rozwiązaliśmy problem, który powodował, że wyskakujące okienko kopiowania/wklejania czasem nie wyświetlało się w oknie EditTextPreference.
- Rozwiązaliśmy problem, który powodował, że podstawowy adapter nie był prawidłowo wyrejestrowany, co powodowało wycieki pamięci w określonych warunkach (b/121006469).
- Naprawiliśmy niektóre awarie związane z oknami, które wystąpiły podczas zmiany konfiguracji (b/122167543).
- Naprawiony komponent podsumowania PodsumowanieProvider nie działa w przypadku opcji MultiSelectListPreference (b/123022772).
Wersja 1.1.0-alfa02
17 grudnia 2018 r.
Zapoznaj się też z ostatnio zaktualizowany przewodnik po ustawieniach i przykład
Nowe funkcje
- Dodano interfejs - EditTextPreference.OnBindEditTextListenerPozwala to dostosować element EditText wyświetlany w po powiązaniu tego okna. Możesz np. ustawić niestandardowy atrybut typ / długość danych wejściowych lub dodanie TextWatcher.
- Dodano - Preference.setCopyingEnabled()Jeśli zasada jest skonfigurowana, przytrzymanie ustawienia spowoduje wyświetlenie menu kontekstowego, które umożliwia skopiowanie podsumowania preferencji. Pozwala to na kopiowanie informacji statycznych, takich jak identyfikatory użytkowników czy informacje o wersji aplikacji.
- Preferencja została zastosowana do motywu aktywności Oznacza to, że przy tworzeniu preferencji na podstawie kodu nie musisz już korzystać z kontekstu z - PreferenceManager#getContext()– możesz po prostu użyć kontekstu z fragmentu aktywności lub fragmentu.
Zmiany interfejsu API
- Zrefaktoryzowano pole findPreference(), aby zwrócić wartość<T extends Preference>Oznacza to, że przy użyciu funkcji findPreference() nie trzeba jawnie przesyłać preferencji. Przykład:EditTextPreference preference = findPreference(“edit_text”)jest teraz poprawnym kodem.
Wersja 1.1.0-alpha01
5 listopada 2018 r.
Nowe funkcje
- Teraz możesz ustawić komponent PodsumowanieProvider dla Preferencji, aby dynamicznie konfigurować jej za każdym razem, gdy ustawienie zostanie zaktualizowane lub staje się widoczne dla użytkownika.
- Dodano domyślne implementacje interfejsu PodsumowanieProvider dla ListPreference i EditTextPreference, który po ustawieniu automatycznie aktualizuje podsumowanie Wybierz, by odzwierciedlić jej zapisaną wartość lub wartość „Nie ustawiono”, jeśli żadna wartość nie została zapisana. Można je ustawić za pomocą parametru app:useSimpleSummaryProvider=”true”.
- Dodano element PreferenceGroup#removePreferenceRecursive, który rekursywnie znajduje i usuwa preferencję z grupy lub grupę zagnieżdżoną niżej w w hierarchii.
Zmiany interfejsu API
- Fragment PreferenceFragment i inne klasy korzystające z fragmentów kodu platformy zostały wprowadzone wycofane – należy używać PreferenceFragmentCompat i innych klas zgodnych .
Poprawki błędów.
- Naprawiono błąd iconSpaceReserve z kategoriami preferencji.
- Naprawiono kategorie preferencji, które nie używają atrybutu colorAccent jako koloru tytułu. poniżej interfejsu API 21.
- Naprawiono niektóre niespójności układu SeekBarPreference poniżej interfejsu API 21.
