Ustawienie

Twórz interaktywne ekrany z ustawieniami bez konieczności korzystania z pamięci urządzenia czy zarządzania interfejsem użytkownika.
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.

Tworzenie nowego numeru

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ębie ComponentDialog lub podczas korzystania z bibliotek takich jak @AndroidEntryPoint Hilta, które opakowują kod Context fragmentu.
  • Preferencje zależą teraz od Aktywności 1.5.1. (IE5d22)
  • Funkcja PreferenceHeaderFragmentCompat.onCreateInitialDetailFragment przekazuje header.extras jako argumenty Fragment.

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 metody onCreatePreferenceHeader() w PreferenceHeaderFragmentCompat. Każdy element <Preference> w nagłówku PreferenceFragmentCompat, który korzysta z atrybutu app: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 interfejsu OnPreferenceStartFragmentCallback, OnNavigateToScreenListener i OnDisplayPreferenceDialogListener 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 i OnDisplayPreferenceDialogListener teraz postępuj zgodnie z ten sam wzorzec co OnPreferenceTreeClickListener 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żytkownika PreferenceFragmentCompat szuka teraz implementacji interfejsu OnPreferenceStartFragmentCallback 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ści FragmentContainerView 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ów androidx.core:core-ktx:1.1.0 i androidx.fragment:fragment-ktx:1.2.4, co odzwierciedla zależności głównego artefaktu preference i uaktualnianie preference-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 klasy PreferenceFragmentCompat 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 panelu EditText wyświetlanego w odpowiednim oknie po jego powiązaniu. Jest to bezpośrednia metoda zastępująca używanie atrybutów takich jak android:inputType bezpośrednio w EditTextPreference, 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 elemencie 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.

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" lub setShowSeekBarValue(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.
  • 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" lub setUpdatesContinuously(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.