Ustawienie
Najnowsza aktualizacja | Wersja stabilna | Kandydat do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
26 lipca 2023 r. | 1.2.1 | - | - | - |
Deklarowanie zależności
Aby dodać zależność od preferencji, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Google Maven.
W pliku build.gradle
aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:
Odlotowy
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 znajdziesz nowe wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, przejrzyj problemy z tą biblioteką. Możesz oddać głos w ramach istniejącego problemu, 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.
Aplikacja 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
Hilt, które opakowują obiektContext
fragmentu.- Ustawienia zależą teraz od Aktywności 1.5.1. (Ie5d22)
PreferenceHeaderFragmentCompat.onCreateInitialDetailFragment
propaguje terazheader.extras
jako argumentyFragment
.
Wersja 1.2.0
26 stycznia 2022 r.
Opublikowano 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
PreferenceHeaderFragmentCompat
w ustawieniach dla 2 paneli, które automatycznie dostosowują się do rozmiaru używanego urządzenia. Dzięki temu można używać go na telefonach, urządzeniach składanych i tabletach. Panel nagłówka jest udostępniany przez zastąpienie metodyonCreatePreferenceHeader()
w tabeliPreferenceHeaderFragmentCompat
. Każdy element<Preference>
w nagłówkuPreferenceFragmentCompat
, który zawiera ciągapp: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 dowolnego ustawienia, można dostosować, zastępując atrybutonCreateInitialDetailFragment()
. Implementacja domyślna zwraca pierwsze ustawienie, które ma zdefiniowany fragment.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
return PreferenceHeader()
}
}
Do wielu interfejsów API, które wcześniej nie określały
@NonNull
ani@Nullable
, dodano adnotacje dotyczące wartości null. Jest to potencjalnie zmiana powodująca niezgodność źródła w Kotlin, jeśli wartość null wybrana w kodzie Kotlin nie pasuje do obecnie zdefiniowanej wartości null.Mechanizm
PreferenceFragmentCompat
wyszukuje teraz implementacje interfejsuOnPreferenceStartFragmentCallback
,OnNavigateToScreenListener
iOnDisplayPreferenceDialogListener
we fragmentach nadrzędnych, a następnie sprawdza, czy kontekst hostowania lub aktywność je implementują.
Wersja 1.2.0-rc01
15 grudnia 2021 roku
androidx.preference:preference:1.2.0-rc01
i androidx.preference:preference-ktx:1.2.0-rc01
są dostępne bez zmian od 1.2.0-beta01
. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Wersja 1.2.0-beta01
17 listopada 2021 r.
Wprowadzono androidx.preference:preference:1.2.0-beta01
i androidx.preference:preference-ktx:1.2.0-beta01
bez zmian w preferencjach 1.2.0-alfa02. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Wersja 1.2.0-alfa02
3 listopada 2021 r.
Opublikowano 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
@NonNull
ani@Nullable
, dodano adnotacje dotyczące wartości null. (I04252, Ie2cc0) - Usunięto interfejs
openPreference()
API z metodyPreferenceHeaderFragmentCompat
– ta metoda jest wywoływana za Ciebie i nie należy jej wywoływać ręcznie. (Ia6989)
Zmiany w działaniu
- Wywołania zwrotne PreferenceFragmentCompat dla interfejsu
OnNavigateToScreenListener
iOnDisplayPreferenceDialogListener
mają teraz taki sam wzór jak w przypadkuOnPreferenceTreeClickListener
. Zanim sprawdzisz, czy kontekst hostingu lub Aktywność implementuje te interfejsy, przeszukaj hierarchię fragmentów nadrzędnych pod kątem prawidłowych odbiorników. (I7ae6c)
Wersja 1.2.0-alfa01
27 października 2021 roku
Opublikowano 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 element
PreferenceHeaderFragmentCompat
dla ustawienia 2 paneli (I9a2d8)
Zmiany w działaniu
Wywołania zwrotne preferencji dla OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback i OnPreferenceStartFragmentCallback można teraz implementować w kontekście innym niż aktywność. Metoda getContext() jest sprawdzana przed sprawdzeniem, czy implementuje te wywołania zwrotne, przed zaznaczeniem getActivity(). Jeśli getContext() zwraca aktywność (typowy przypadek), nie zmienia się zachowanie.
Wywołanie funkcji
onPreferenceTreeClick
przez funkcjęPreferenceFragmentCompat
szuka teraz implementacji interfejsuOnPreferenceStartFragmentCallback
we fragmentach nadrzędnych przed rozważeniem implementacji działania. (c64eed)
Wersja 1.1
Wersja 1.1.1
15 kwietnia 2020 roku
Opublikowano 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
PreferenceDialogFragmentCompat
nie będzie już generować błęduIllegalStateException
podczas zawyżania 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 odandroidx.core:core-ktx:1.1.0
iandroidx.fragment:fragment-ktx:1.2.4
, powielając zależności głównego artefaktupreference
i upewniając się, że uaktualnieniepreference-ktx
aktualizuje zarówno główne artefakty, jak i-ktx
artefakty zależności przechodnich. (Aosp/1277319)
Wersja 1.1.0
5 września 2019 r.
Opublikowano 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.*
, do której przeprowadzasz aktualizację, oto zwięzła lista większych zmian od czasu ostatniej stabilnej wersji (1.0.0
). Mogą Ci się też przydać informacje z przewodnika po ustawieniach, przykładowej aplikacji i prezentacji na temat Androida Dev Summit.
Ważne zmiany od wersji 1.0.0
- Klasy
PreferenceFragment
i inne korzystające z fragmentów platformy zostały wycofane. Zamiast nich używaj klasPreferenceFragmentCompat
i innych klas *compat. - Możesz teraz ustawić element
SummaryProvider
w preferencji, aby dynamicznie konfigurować jego podsumowanie po każdej aktualizacji preferencji lub gdy staje się widoczne dla użytkownika. Więcej informacji znajdziesz w przewodniku. - Dodano interfejs
EditTextPreference.OnBindEditTextListener
. Umożliwia to dostosowanie elementuEditText
wyświetlanego w odpowiednim oknie po powiązaniu tego okna. To bezpośredni zamiennik używania atrybutów takich jakandroid:inputType
bezpośrednio wEditTextPreference
, który nie jest obsługiwany w bibliotece AndroidaX. Więcej informacji znajdziesz w przewodniku. - Dodano
Preference.setCopyingEnabled()
Po ustawieniu włączonego długiego przytrzymania Preferencji wyświetli się menu kontekstowe, które umożliwia skopiowanie podsumowania ustawień. - Zaktualizowano styl elementu
SeekBarPreference
, aby był zgodny ze specyfikacją Material. Informacje o innych zmianach wSeekBarPreference
znajdziesz w szczegółowej historii zmian. - Duża liczba poprawek błędów, zmian stylu, poprawek zwiększających zgodność z poziomem interfejsu API oraz ogólne ulepszenia QOL.
Wersja 1.1.0-rc01
2 lipca 2019 r.
Opublikowano 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
- Zrezygnuj z umowy
Preference#onInitializeAccessibilityNodeInfo
- Ta metoda korzysta z informacji o węźle ułatwień dostępu przez serwer proxy dla określonej preferencji, ale to niewłaściwa warstwa do tego dostosowania. Jeśli chcesz dostosować informacje o ułatwieniach dostępu, zastąp te informacje wartością onBindViewHolder i dodaj informacje o ułatwieniach dostępu bezpośrednio do widoku.
Wersja 1.1.0-beta01
5 czerwca 2019 r.
Opublikowano 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.*, do której przeprowadzasz aktualizację, oto zwięzła lista większych zmian od momentu opublikowania ostatniej stabilnej wersji 1.1.0. Mogą Ci się też przydać informacje z przewodnika po ustawieniach, przykładowej aplikacji i prezentacji na temat Androida Dev Summit.
- Klasy PreferenceFragment i inne klasy korzystające z fragmentów platformy zostały wycofane. Zamiast nich użyj klas PreferenceFragmentCompat i innych klas *compat.
- Możesz teraz ustawić komponent PodsumowanieProvider na preferencji, aby dynamicznie konfigurować jego podsumowanie po każdej zmianie preferencji lub gdy staje się ono widoczne dla użytkownika. Więcej informacji znajdziesz w przewodniku.
- Dodano interfejs
EditTextPreference.OnBindEditTextListener
. Umożliwia to dostosowanie tekstu EditText wyświetlanego w odpowiednim oknie po jego powiązaniu. Zastąpi on korzystanie z atrybutów takich jak android:inputType bezpośrednio w EditTextPreference, który nie jest obsługiwany w bibliotece AndroidX. Więcej informacji znajdziesz w przewodniku. - Dodano
Preference.setCopyingEnabled()
Po ustawieniu włączonego długiego przytrzymania Preferencji wyświetli się menu kontekstowe, które umożliwia skopiowanie podsumowania ustawień. - Zaktualizowano styl SeekBarPreference, aby dopasować go do specyfikacji Material. Informacje o innych zmianach w SeekBarPreference znajdziesz w szczegółowym historii zmian.
- Duża liczba poprawek błędów, zmian stylu, poprawek zwiększających zgodność z poziomem interfejsu API oraz ogólne ulepszenia QOL.
Zmiany w interfejsie API od wersji 1.1.0-alfa05
- Usuwa metodę getOnBindEditTextListener z publicznego interfejsu API. Podczas interakcji z tym interfejsem API należy używać tylko funkcji setOnBindEditTextListener.
Jeśli napotkasz problemy lub masz sugestie dotyczące nowych funkcji, możesz zgłaszać je tutaj.
Wersja 1.1.0-alfa05
7 maja 2019 r.
Opublikowano 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
- Zmieniliśmy styl ustawień, których nie można wybrać. Tytuł i podsumowanie mają teraz ten sam kolor, aby było jasne, że nie można ich używać w internecie i są używane tylko do wyświetlania informacji.
- Uwaga: możesz też dodać element
enableCopying="true"
do ustawień, których nie można wybrać, aby przytrzymać przycisk, aby skopiować podsumowanie.
Poprawki błędów
- Naprawiono regresję, w której PreferenceCategory i inne niewybrane ustawienia miały efekt fali po wybraniu.
- Rozwiązaliśmy problem z ułatwieniami dostępu, który powodował, że funkcja TalkBack nie widziała elementu DropDownPreference jako klikalnego.
- Usunięto niektóre błędy układu od prawej do lewej.
- Zaktualizowano niektóre adnotacje z możliwością wartości null w elemencie PreferenceFragmentCompat, aby dopasować je do fragmentu Fragment.
Wersja 1.1.0-alfa04
13 marca 2019 r.
Opublikowano 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
- Styl został zaktualizowany, aby dopasować go do specyfikacji materiału
- Etykieta wartości jest teraz domyślnie ukryta, ale nadal można ją wyświetlać za pomocą
app:showSeekBarValue="true"
isetShowSeekBarValue(true)
. Ta etykieta nie jest częścią specyfikacji Material, ale zdajemy sobie sprawę, że jest ona intensywnie wykorzystywana, więc nadal będziemy ją wspierać, mimo że nie zalecamy jej używania. - Etykieta wartości jest teraz aktualizowana podczas przeciągania paska SeekBar, a nie po jego zwolnieniu. Pamiętaj, że nie oznacza to, że wartość jest aktualizowana wewnętrznie. Poniżej znajdziesz nowy interfejs API, który udostępnia tę funkcję.
- Uwaga: chociaż ta funkcja jest obsługiwana, nie należy ustawiać podsumowania na podstawie właściwości 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ą
- Dodano obsługę ciągłych aktualizacji, dzięki czemu pasek SeekBar może aktualizować zapisaną wartość podczas przeciągania paska SeekBar. Można to włączyć za pomocą pliku XML lub automatycznie za pomocą funkcji
app:updatesContinuously="true"
lubsetUpdatesContinuously(true)
. Jest on uruchamiany przy każdej zmianie pozycji paska SeekBar na ekranie.
Zmiany w interfejsie API
- Dodaje brakujące adnotacje wartości null do elementu
findPreference()
Poprawki błędów
- Naprawiono błąd, który powodował, że detektory menu kontekstowego nie były prawidłowo usuwane, jeśli kopiowanie było wyłą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ą udostępniane z następującymi zmianami.
Poprawki błędów
- Naprawiono błąd, który powodował, że wyskakujące okienko kopiowania/wklejania czasem nie było wyświetlane w oknie EditTextPreference.
- Rozwiązaliśmy problem, który powodował, że podstawowa karta nie była prawidłowo rejestrowana, co powodowało wyciek pamięci w określonych warunkach (b/121006469).
- Usunięto niektóre awarie związane z oknami, które występowały podczas zmiany konfiguracji (b/122167543).
- Naprawiony element PodsumowanieProvider nie działa w przypadku MultiSelectListPreference (b/123022772)
Wersja 1.1.0-alfa02
17 grudnia 2018 r.
Zapoznaj się też z niedawno zaktualizowanym przewodnikiem po ustawieniach i przykładową aplikacją.
Nowe funkcje
Dodano interfejs
EditTextPreference.OnBindEditTextListener
Pozwala to dostosować tekst EditText wyświetlany w odpowiednim oknie dialogowym po ograniczeniu tego okna. np. przez ustawienie niestandardowego typu lub długości danych wejściowych albo dodanie TextWatcher.Dodano
Preference.setCopyingEnabled()
Gdy ustawienie jest ustawione, przytrzymaj Preferencję, aby wyświetlić menu kontekstowe, które umożliwia skopiowanie podsumowania ustawień. Pozwala to na kopiowanie informacji statycznych, takich jak identyfikatory użytkownika lub informacje o wersji aplikacji.Preferencje są teraz stosowane do motywu aktywności. Oznacza to, że podczas tworzenia preferencji na podstawie kodu nie musisz już korzystać z kontekstu
PreferenceManager#getContext()
– możesz użyć kontekstu Fragment/Aktywność.
Zmiany w interfejsie API
- Zrefaktoryzowano funkcję
findPreference()
, aby zwrócić<T extends Preference>
. Oznacza to, że podczas korzystania z funkcji findPreference() nie musisz wyraźnie rzutować ustawień. Na przykładEditTextPreference preference = findPreference(“edit_text”)
jest teraz prawidłowym kodem.
Wersja 1.1.0-alfa01
5 listopada 2018 r.
Nowe funkcje
- Możesz teraz ustawić komponent PodsumowanieProvider na preferencji, aby dynamicznie konfigurować jego podsumowanie po każdej zmianie preferencji lub gdy staje się ono widoczne dla użytkownika.
- Dodano domyślne implementacje interfejsuSummaryProvider dla elementów ListPreference i EditTextPreference, które po skonfigurowaniu automatycznie zaktualizują podsumowanie preferencji, aby odzwierciedlały zapisane wartości, lub „Nie ustawiono”, jeśli nie zostały zapisane. Można je ustawić za pomocą parametru app:useSimpleSummaryProvider=”true”
- Dodano PreferenceGroup#removePreferenceRecursively, które rekurencyjnie znajdują i usuwają preferencję z grupy lub zagnieżdżoną grupę niżej w hierarchii.
Zmiany w interfejsie API
- Klasy PreferenceFragment i inne klasy korzystające z fragmentów platformy zostały wycofane. Zamiast nich używaj klasy PreferenceFragmentCompat i innych klas compat.
Poprawki błędów
- Naprawiono ikonę SpaceReserve nieprawidłowo działała z kategoriami preferencji.
- Poprawiono Preferencekategorii poniżej interfejsu API 21, który nie używa parametru colorAccent w przypadku koloru tytułu.
- Naprawiono pewne niespójności w układzie SeekBarPreference poniżej interfejsu API 21.