Preferenza
Aggiornamento più recente | Release stabile | Candidato per l'uscita | Versione beta | Release alpha |
---|---|---|---|---|
26 luglio 2023 | 1.2.1 | - | - | - |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza alle preferenze, devi aggiungere il Repository Maven di Google al tuo progetto. Consulta il Repository Maven di Google per ulteriori informazioni.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle
per
l'app o il modulo:
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") }
Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze nella build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Non esitare a contattarci in caso di nuovi problemi o idee per migliorare questa raccolta. Dai un'occhiata alle problemi esistenti in questa raccolta, prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente tramite facendo clic sul pulsante a forma di stella.
Consulta la documentazione di Issue Tracker per ulteriori informazioni.
Versione 1.2
Versione 1.2.1
26 luglio 2023
Viene rilasciato androidx.preference:preference:1.2.1
. La versione 1.2.1 contiene questi commit.
Correzioni di bug
- Ora
PreferenceHeaderFragmentCompat
gestisce correttamente il pulsante Indietro del sistema se utilizzato all'interno di un elementoComponentDialog
o quando utilizzi librerie come@AndroidEntryPoint
di Hilt che aggreganoContext
del frammento. - La preferenza ora dipende dall'Attività 1.5.1. (Ie5d22).
PreferenceHeaderFragmentCompat.onCreateInitialDetailFragment
ora propagaheader.extras
come argomentiFragment
.
Versione 1.2.0
26 gennaio 2022
Vengono rilasciate le versioni androidx.preference:preference:1.2.0
e androidx.preference:preference-ktx:1.2.0
. La versione 1.2.0 contiene questi commit.
Modifiche importanti dalla versione 1.1.0
- È stata aggiunta l'
PreferenceHeaderFragmentCompat
per la preferenza a due riquadri che si adatta automaticamente in base alle dimensioni del dispositivo utilizzato, rendendolo adatto all'uso su smartphone, pieghevoli e tablet. Il riquadro di intestazione viene fornito eseguendo l'override del metodoonCreatePreferenceHeader()
suPreferenceHeaderFragmentCompat
. Qualsiasi elemento<Preference>
nell'intestazionePreferenceFragmentCompat
che utilizzaapp:fragment
farà sì che il frammento venga visualizzato nel secondo riquadro dei dettagli. Il frammento di dettaglio iniziale che deve essere visualizzato prima che qualsiasi preferenza venga selezionata manualmente può essere personalizzato eseguendo l'override dionCreateInitialDetailFragment()
. L'implementazione predefinita restituisce la prima preferenza con un frammento definito.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
return PreferenceHeader()
}
}
Sono state aggiunte annotazioni con nullità a molti dei API che in precedenza non specificavano
@NonNull
o@Nullable
. Si tratta potenzialmente di una modifica che provoca un errore nel codice sorgente Kotlin, se il valore non valido che hai scelto nel codice Kotlin non corrisponde a quello attualmente definito.Ora
PreferenceFragmentCompat
cerca le implementazioni dell'interfacciaOnPreferenceStartFragmentCallback
,OnNavigateToScreenListener
eOnDisplayPreferenceDialogListener
sui frammenti padre prima di verificare se il contesto o l'attività di hosting implementano queste interfacce.
Versione 1.2.0-rc01
15 dicembre 2021
androidx.preference:preference:1.2.0-rc01
e androidx.preference:preference-ktx:1.2.0-rc01
vengono rilasciate senza modifiche dal giorno 1.2.0-beta01
. La versione 1.2.0-rc01 contiene questi commit.
Versione 1.2.0-beta01
17 novembre 2021
androidx.preference:preference:1.2.0-beta01
e androidx.preference:preference-ktx:1.2.0-beta01
vengono rilasciati senza modifiche rispetto alla preferenza 1.2.0-alpha02. La versione 1.2.0-beta01 contiene questi commit.
Versione 1.2.0-alpha02
3 novembre 2021
Vengono rilasciate le versioni androidx.preference:preference:1.2.0-alpha02
e androidx.preference:preference-ktx:1.2.0-alpha02
. La versione 1.2.0-alpha02 contiene questi commit.
Modifiche alle API
- Sono state aggiunte annotazioni con nullità a molti dei
API che in precedenza non specificavano
@NonNull
o@Nullable
. (I04252, Ie2cc0) - L'API
openPreference()
è stata rimossa daPreferenceHeaderFragmentCompat
: questo metodo è che ha chiamato per te e non deve essere chiamato manualmente. (Ia6989)
Cambiamenti del comportamento
- Callback PreferenceFragmentCompat per
OnNavigateToScreenListener
eOnDisplayPreferenceDialogListener
ora seguono nello stesso pattern diOnPreferenceTreeClickListener
e cerca nella gerarchia dei frammenti padre ascoltatori prima di controllare se l'istanza di hosting Il contesto o l'attività implementa queste interfacce. (I7ae6c).
Versione 1.2.0-alpha01
27 ottobre 2021
Vengono rilasciate le versioni androidx.preference:preference:1.2.0-alpha01
e androidx.preference:preference-ktx:1.2.0-alpha01
. La versione 1.2.0-alpha01 contiene questi commit.
Nuove funzionalità
- È stato aggiunto
PreferenceHeaderFragmentCompat
per la preferenza a due riquadri (I9a2d8)
Cambiamenti del comportamento
I callback delle preferenze per OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback e OnPreferenceStartFragmentCallback ora possono essere implementati in un contesto non di attività. getContext() viene controllato per verificare se implementa questi callback prima di controllare getActivity(). Se getContext() restituisce un'attività (il caso comune), il comportamento non cambia.
La chiamata di
PreferenceFragmentCompat
aonPreferenceTreeClick
ora cerca le implementazioni dell'interfacciaOnPreferenceStartFragmentCallback
sui frammenti padre prima di prendere in considerazione l'implementazione dell'attività. (c64eed)
Versione 1.1
Versione 1.1.1
15 aprile 2020
Vengono rilasciate le versioni androidx.preference:preference:1.1.1
e androidx.preference:preference-ktx:1.1.1
. La versione 1.1.1 contiene questi commit.
Correzioni di bug
PreferenceDialogFragmentCompat
non genererà più unIllegalStateException
durante il gonfiaggio di unFragmentContainerView
da XML. (b/150051716)
Aggiornamenti delle dipendenze
- La preferenza ora dipende dal Frammento
1.2.4
. (aosp/1277317) - La dipendenza
preference-ktx
ora dipende daandroidx.core:core-ktx:1.1.0
eandroidx.fragment:fragment-ktx:1.2.4
, eseguendo il mirroring delle dipendenze dell'artefattopreference
principale e garantendo che l'upgrade dipreference-ktx
aggiorni gli artefatti principali e-ktx
delle dipendenze transitive. (aosp/1277319)
Versione 1.1.0
5 settembre 2019
Vengono rilasciate le versioni androidx.preference:preference:1.1.0
e androidx.preference:preference-ktx:1.1.0
. I commit inclusi in questa versione sono disponibili qui.
Se questa è la prima release di 1.1.*
a cui stai eseguendo l'aggiornamento, di seguito è riportato un elenco conciso delle modifiche più importanti dall'ultima release stabile, 1.0.0
. Potrebbero esserti utili anche la guida alle impostazioni, l'app di esempio e le chiamate all'Android Dev Summit.
Modifiche importanti dalla versione 1.0.0
PreferenceFragment
e altri corsi che utilizzano Frammenti del framework sono stati deprecati. dovresti usarePreferenceFragmentCompat
e altre classi *compat.- Ora puoi impostare un
SummaryProvider
su una preferenza per configurarne dinamicamente il riepilogo ogni volta che la preferenza viene aggiornata o diventa visibile all'utente. Per ulteriori informazioni, consulta la guida. - È stata aggiunta l'interfaccia di
EditTextPreference.OnBindEditTextListener
. In questo modo è possibile personalizzare laEditText
visualizzata nella finestra di dialogo corrispondente dopo che la finestra di dialogo è stata associata. Questa funzionalità sostituisce direttamente l'utilizzo di attributi comeandroid:inputType
direttamente inEditTextPreference
, che non è supportato nella libreria AndroidX. Per ulteriori informazioni, consulta la guida. Preference.setCopyingEnabled()
aggiunto. Se questa impostazione è impostata, la pressione prolungata sulla preferenza mostra un menu contestuale che consente di copiare il riepilogo della preferenza.- Sono stati aggiornati gli stili
SeekBarPreference
in base alle specifiche Material. Consulta il log delle modifiche dettagliato per altre modifiche aSeekBarPreference
. - Una grande quantità di correzioni di bug, aggiornamenti di stile, correzioni di compatibilità a livello di API e miglioramenti generali della qualità QOL.
Versione 1.1.0-rc01
2 luglio 2019
Vengono rilasciate le versioni androidx.preference:preference:1.1.0-rc01
e androidx.preference:preference-ktx:1.1.0-rc01
. I commit inclusi in questa versione sono disponibili qui.
Modifiche alle API
- Depreca
Preference#onInitializeAccessibilityNodeInfo
- Questo metodo ha inviato le informazioni sul nodo di accessibilità tramite proxy per una preferenza specifica, ma non è il livello corretto per questa personalizzazione. Se vuoi regolare le informazioni sull'accessibilità, devi invece eseguire l'override di onBindViewAspettaer e aggiungere le informazioni sull'accessibilità direttamente alla vista.
Versione 1.1.0-beta01
5 giugno 2019
Vengono rilasciate le versioni androidx.preference:preference:1.1.0-beta01
e androidx.preference:preference-ktx:1.1.0-beta01
. I commit inclusi in questa versione sono disponibili qui.
Modifiche importanti dalla versione 1.1.0
Se questa è la prima release 1.1.* a cui stai eseguendo l'aggiornamento, di seguito è riportato un elenco conciso delle modifiche più importanti dall'ultima release stabile, la 1.1.0. Potrebbero esserti utili anche la guida alle impostazioni, l'app di esempio e le chiamate all'Android Dev Summit.
- PreferenceFragment e altre classi che utilizzano il framework Fragments sono state ritirate. Dovresti usare PreferenceFragmentCompat e altre classi *compat.
- Ora puoi impostare un SummaryProvider su una Preference per configurarne dinamicamente il riepilogo ogni volta che la preferenza viene aggiornata o diventa visibile all'utente. Per ulteriori informazioni, consulta la guida.
- È stata aggiunta l'interfaccia di
EditTextPreference.OnBindEditTextListener
. Ciò consente di personalizzare l'EditText visualizzato nella finestra di dialogo corrispondente dopo che la finestra di dialogo è stata associata. Questa funzionalità sostituisce direttamente l'uso di attributi come android:inputType direttamente in EditTextPreference, che non è supportato nella libreria AndroidX. Per ulteriori informazioni, consulta la guida. Preference.setCopyingEnabled()
aggiunto. Se questa impostazione è impostata, la pressione prolungata sulla preferenza mostra un menu contestuale che consente di copiare il riepilogo della preferenza.- Stile SeekBarPreference aggiornato in modo che corrisponda alle specifiche Material. Consulta il log delle modifiche dettagliato per altre modifiche a SeekBarPreference.
- Una grande quantità di correzioni di bug, aggiornamenti di stile, correzioni di compatibilità a livello di API e miglioramenti generali della qualità QOL.
Modifiche all'API dalla versione 1.1.0-alpha05
- Rimuove getOnBindEditTextListener dall'API pubblica. Dovresti usare setOnBindEditTextListener solo quando interagisci con questa API.
Segnala eventuali bug qui se riscontri problemi o hai dei suggerimenti per nuove funzionalità.
Versione 1.1.0-alpha05
7 maggio 2019
Vengono rilasciate le versioni androidx.preference:preference:1.1.0-alpha05
e androidx.preference:preference-ktx:1.1.0-alpha05
. I commit inclusi in questa versione sono disponibili qui.
Nuove funzionalità
- Stile aggiornato per le preferenze non selezionabili: il titolo e il riepilogo ora condividono lo stesso colore per chiarire che non è possibile interagire e sono utilizzati solo per la visualizzazione delle informazioni.
- Nota: ti consigliamo di aggiungere
enableCopying="true"
alle preferenze non selezionabili, così puoi premere a lungo per copiare il riepilogo.
Correzioni di bug
- È stato corretto un problema di regressione in cui PreferenceCategory e altre preferenze non selezionabili avevano un effetto a onde se selezionate
- Risolto un problema di accessibilità per cui TalkBack non vedeva il menu a discesa selezionabile
- Sono stati risolti alcuni problemi di layout RTL
- Sono state aggiornate alcune annotazioni con valori null in PreferenceFragmentCompat in modo che corrispondano a Fragment
Versione 1.1.0-alpha04
13 marzo 2019
Vengono rilasciate le versioni androidx.preference:preference:1.1.0-alpha04
e androidx.preference:preference-ktx:1.1.0-alpha04
. L'elenco completo dei commit inclusi in questa versione è disponibile qui.
Nuove funzionalità
Aggiornamento di SeekBarPreference
.
- Stile aggiornato in base alle specifiche dei materiali
- L'etichetta del valore ora è nascosta per impostazione predefinita, anche se può ancora essere visualizzata con
app:showSeekBarValue="true"
osetShowSeekBarValue(true)
. Questa etichetta non fa parte della specifica Material, ma siamo consapevoli del fatto che è molto utilizzata, quindi continueremo a supportarla, anche se sconsigliamo di utilizzarla. - L'etichetta del valore ora viene aggiornata durante il trascinamento della barra SeekBar, anziché quando viene rilasciata. Tieni presente che questo non significa che il valore viene aggiornato internamente. Vedi di seguito per una nuova API che abilita questa funzionalità.
- Nota: sebbene sia supportato, dovresti evitare di impostare un riassunto su una SeekBarPreference, perché non è intenzionale e non fa parte della specifica Material.
- L'etichetta del valore ora è nascosta per impostazione predefinita, anche se può ancora essere visualizzata con
- Aggiunge il supporto di aggiornamenti continui, consentendo a SeekBar di aggiornare il suo valore salvato mentre la SeekBar viene trascinata. Può essere attivato da XML o in modo programmatico, con
app:updatesContinuously="true"
osetUpdatesContinuously(true)
. Si attiva ogni volta che la posizione del SeekBar sullo schermo cambia.
Modifiche alle API
- Aggiunge a
findPreference()
annotazioni con valore nullo mancanti
Correzioni di bug
- È stato corretto un bug per cui i listener del menu contestuale non venivano rimossi correttamente se la copia non è abilitata
Versione 1.1.0-alpha03
7 febbraio 2019
androidx.preference:preference 1.1.0-alpha03
androidx.preference:preference 1.1.0-alpha03
e
androidx.preference:preference-ktx 1.1.0-alpha03
vengono rilasciati con
le modifiche successive.
Correzioni di bug
- Risolto un problema per cui il popup di copia/incolla a volte non veniva visualizzato nella finestra di dialogo di EditTextPreference
- Risolto un problema per cui la registrazione dell'adattatore sottostante non veniva annullata correttamente, con conseguenti perdite di memoria in condizioni specifiche (b/121006469)
- Sono stati corretti alcuni arresti anomali relativi alle finestre di dialogo che si verificavano durante la modifica della configurazione (b/122167543)
- È stato corretto il metodo SummaryProvider non funzionante per MultiSelectListPreference (b/123022772)
Versione 1.1.0-alpha02
17 dicembre 2018
Consulta anche Guida alle impostazioni aggiornata di recente ed esempio .
Nuove funzionalità
Aggiunta l'interfaccia
EditTextPreference.OnBindEditTextListener
Ciò consente di personalizzare l'EditText visualizzato nei Dopo che la finestra di dialogo è stata associata. Ad esempio, l'impostazione di un'istanza un tipo di input / lunghezza o l'aggiunta di un TextWatcher.Data di aggiunta:
Preference.setCopyingEnabled()
Se questa impostazione è impostata, premi a lungo sulla Preferenza per mostrare un menu contestuale che consente di copiare il riepilogo della preferenza. Questa opzione può essere utilizzata per consentire la copia di informazioni statiche, quali gli ID specifici degli utenti e le informazioni sulla versione dell'applicazione.Il tema preferenze è ora applicato al tema delle attività Ciò significa che quando crei una preferenza dal codice, non devi più utilizzare il contesto di
PreferenceManager#getContext()
: puoi semplicemente utilizzare il contesto Frammento/Attività.
Modifiche alle API
- Eseguito refactoring di
findPreference()
per restituire<T extends Preference>
Ciò significa che non è necessario trasmettere esplicitamente le preferenze quando usi searchPreference(). Ad esempio:EditTextPreference preference = findPreference(“edit_text”)
ora è un codice valido.
Versione 1.1.0-alpha01
5 novembre 2018
Nuove funzionalità
- Ora puoi impostare un SummaryProvider su una Preference per configurarne in modo dinamico il relativo riepilogo ogni volta che la preferenza viene aggiornata o diventa visibile all'utente.
- Sono state aggiunte le implementazioni di riepilogo predefinite per ListPreference e EditTextPreference, che, una volta impostato, aggiornerà automaticamente il riepilogo del Preferenza affinché rifletta il valore salvato o "Non impostato" se non è stato salvato alcun valore. Possono essere impostati con app:useSimpleSummaryProvider="true"
- È stato aggiunto PreferenceGroup#removePreferenceRecurssive, che individua e rimuove una preferenza dal gruppo oppure un gruppo nidificato più in basso nella gerarchia.
Modifiche alle API
- PreferenceFragment e altre classi che usano il framework Fragments sono state deprecato: devi utilizzare PreferenceFragmentCompat e altre classi compat .
Correzioni di bug
- È stato corretto il problema di iconSpaceConfidential con il funzionamento non corretto con PreferenceCategories.
- Correggi PreferenceCategories che non utilizzava colorAccent per il colore del titolo inferiore all'API 21.
- Sono state corrette alcune incoerenze del layout di SeekBarPreference relative all'API 21.