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
PreferenceHeaderFragmentCompat
teraz prawidłowo obsługuje systemowy przycisk Wstecz, gdy jest używany w obrębieComponentDialog
lub podczas korzystania z bibliotek takich jak@AndroidEntryPoint
Hilta, które opakowują kodContext
fragmentu.- Preferencje zależą teraz od Aktywności 1.5.1. (IE5d22)
- Funkcja
PreferenceHeaderFragmentCompat.onCreateInitialDetailFragment
przekazujeheader.extras
jako 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
PreferenceHeaderFragmentCompat
w 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
@NonNull
ani@Nullable
Jest 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.PreferenceFragmentCompat
szuka teraz implementacji interfejsuOnPreferenceStartFragmentCallback
,OnNavigateToScreenListener
iOnDisplayPreferenceDialogListener
we 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
@NonNull
ani@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
OnNavigateToScreenListener
iOnDisplayPreferenceDialogListener
teraz postępuj zgodnie z ten sam wzorzec coOnPreferenceTreeClickListener
i 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
PreferenceHeaderFragmentCompat
dla 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
onPreferenceTreeClick
przez użytkownikaPreferenceFragmentCompat
szuka teraz implementacji interfejsuOnPreferenceStartFragmentCallback
w 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
PreferenceDialogFragmentCompat
nie będzie już wysyłać zapytańIllegalStateException
podczas uzupełniania wartościFragmentContainerView
z pliku XML. (B/150051716)
Aktualizacje zależności
- Preferencje zależą teraz od fragmentu
1.2.4
. (Aosp/1277317) - Zależność
preference-ktx
zależy teraz od elementówandroidx.core:core-ktx:1.1.0
iandroidx.fragment:fragment-ktx:1.2.4
, co odzwierciedla zależności głównego artefaktupreference
i uaktualnianiepreference-ktx
powoduje zaktualizowanie zarówno głównego, jak i-ktx
artefaktu 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
PreferenceFragment
i inne klasy korzystające z fragmentów platformy zostały wycofane. użyj klasyPreferenceFragmentCompat
i innych *klas kompatybilnych. - Teraz możesz ustawić
SummaryProvider
w 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 paneluEditText
wyświetlanego w odpowiednim oknie po jego powiązaniu. Jest to bezpośrednia metoda zastępująca używanie atrybutów takich jakandroid:inputType
bezpoś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 elemencieSeekBarPreference
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.
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.OnBindEditTextListener
Pozwala 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.