Preferenza
| Ultimo aggiornamento | Release stabile | Candidato per la release | Release beta | Release alpha |
|---|---|---|---|---|
| 26 luglio 2023 | 1.2.1 | - | - | - |
Dichiara le dipendenze
Per aggiungere una dipendenza da Preference, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per la tua app o il tuo modulo:
Alla moda
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 di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di segnalare un nuovo problema, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per saperne di più, consulta la documentazione di Issue Tracker.
Versione 1.2
Versione 1.2.1
26 luglio 2023
androidx.preference:preference:1.2.1 è stato rilasciato. La versione 1.2.1 contiene questi commit.
Correzioni di bug
PreferenceHeaderFragmentCompatora gestisce correttamente il pulsante Indietro del sistema quando viene utilizzato all'interno di unComponentDialogo quando si utilizzano librerie come@AndroidEntryPointdi Hilt che racchiudono ilContextdel Fragment.- Preference ora dipende da Activity 1.5.1. (Ie5d22)
PreferenceHeaderFragmentCompat.onCreateInitialDetailFragmentora propagaheader.extrascome argomentiFragment.
Versione 1.2.0
26 gennaio 2022
androidx.preference:preference:1.2.0 e androidx.preference:preference-ktx:1.2.0 sono stati rilasciati. La versione 1.2.0 contiene questi commit.
Modifiche importanti dalla versione 1.1.0
- È stato aggiunto
PreferenceHeaderFragmentCompatper 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 dell'intestazione viene fornito eseguendo l'override del metodoonCreatePreferenceHeader()suPreferenceHeaderFragmentCompat. Qualsiasi<Preference>nell'intestazionePreferenceFragmentCompatche utilizzaapp:fragmentfarà in modo che il fragment venga visualizzato nel secondo riquadro dei dettagli. Il fragment dei dettagli iniziale da visualizzare prima che venga selezionata manualmente una preferenza può essere personalizzato eseguendo l'override dionCreateInitialDetailFragment(). L'implementazione predefinita restituisce la prima preferenza con un fragment definito.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
return PreferenceHeader()
}
}
Sono state aggiunte annotazioni di nullabilità a molte delle API che in precedenza non specificavano
@NonNullo@Nullable. Questa è una modifica che potrebbe causare un'interruzione del codice sorgente Kotlin se la nullabilità scelta nel codice Kotlin non corrisponde a quella ora definita.PreferenceFragmentCompatora cerca le implementazioni delle interfacceOnPreferenceStartFragmentCallback,OnNavigateToScreenListenereOnDisplayPreferenceDialogListenernei fragment principali 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 sono stati rilasciati senza modifiche rispetto a 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 sono stati rilasciati senza modifiche rispetto a Preference 1.2.0-alpha02. La versione 1.2.0-beta01 contiene questi commit.
Versione 1.2.0-alpha02
3 novembre 2021
androidx.preference:preference:1.2.0-alpha02 e androidx.preference:preference-ktx:1.2.0-alpha02 sono stati rilasciati. La versione 1.2.0-alpha02 contiene questi commit.
Modifiche alle API
- Sono state aggiunte annotazioni di nullabilità a molte delle API che in precedenza non specificavano
@NonNullo@Nullable. (I04252, Ie2cc0) - È stata rimossa l'API
openPreference()daPreferenceHeaderFragmentCompat- questo metodo viene chiamato automaticamente e non deve essere chiamato manualmente. (Ia6989)
Modifiche al comportamento
- I callback di PreferenceFragmentCompat per
OnNavigateToScreenListenereOnDisplayPreferenceDialogListenerora seguono lo stesso pattern diOnPreferenceTreeClickListenere cercano la gerarchia dei fragment principali per i listener validi prima di verificare se il contesto o l'attività di hosting implementano queste interfacce. (I7ae6c)
Versione 1.2.0-alpha01
27 ottobre 2021
androidx.preference:preference:1.2.0-alpha01 e androidx.preference:preference-ktx:1.2.0-alpha01 sono stati rilasciati. La versione 1.2.0-alpha01 contiene questi commit.
Nuove funzionalità
- È stato aggiunto
PreferenceHeaderFragmentCompatper la preferenza a due riquadri (I9a2d8)
Modifiche al comportamento
I callback di Preference per OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback e OnPreferenceStartFragmentCallback ora possono essere implementati in un contesto non di attività. Viene controllato se getContext() implementa questi callback prima di controllare getActivity(). Se getContext() restituisce un'attività (il caso comune), non si verifica alcuna modifica del comportamento.
La chiamata di
PreferenceFragmentCompataonPreferenceTreeClickora cerca le implementazioni dell'interfacciaOnPreferenceStartFragmentCallbacknei fragment principali prima di considerare l'implementazione dell'attività. (c64eed)
Versione 1.1
Versione 1.1.1
15 aprile 2020
androidx.preference:preference:1.1.1 e androidx.preference:preference-ktx:1.1.1 sono stati rilasciati. La versione 1.1.1 contiene questi commit.
Correzioni di bug
PreferenceDialogFragmentCompatnon genererà più unIllegalStateExceptiondurante l'espansione di unFragmentContainerViewda XML. (b/150051716)
Aggiornamenti delle dipendenze
- Preference ora dipende da Fragment
1.2.4. (aosp/1277317) - La dipendenza
preference-ktxora dipende daandroidx.core:core-ktx:1.1.0eandroidx.fragment:fragment-ktx:1.2.4, rispecchiando le dipendenze dell'artefattopreferenceprincipale e garantendo che l'upgrade dipreference-ktxaggiorni sia l'artefatto principale sia quello-ktxdelle dipendenze transitive. (aosp/1277319)
Versione 1.1.0
5 settembre 2019
androidx.preference:preference:1.1.0 e androidx.preference:preference-ktx:1.1.0 sono stati rilasciati. I commit inclusi in questa versione sono disponibili qui.
Se questo è il primo aggiornamento alla release 1.1.*, ecco un elenco conciso delle modifiche più importanti dall'ultima release stabile, 1.0.0. Potresti trovare utili anche la guida Impostazioni, l'app di esempio e il talk dell'Android Dev Summit.
Modifiche importanti dalla versione 1.0.0
PreferenceFragmente altre classi che utilizzano i fragment del framework sono state ritirate. Devi utilizzarePreferenceFragmentCompate altre classi *compat.- Ora puoi impostare un
SummaryProvidersu una preferenza per configurarne dinamicamente il riepilogo ogni volta che la preferenza viene aggiornata o diventa visibile all'utente. Per saperne di più, consulta la guida. - È stata aggiunta l'interfaccia
EditTextPreference.OnBindEditTextListener. Consente di personalizzareEditTextvisualizzato nella finestra di dialogo corrispondente dopo che la finestra di dialogo è stata associata. Si tratta di una sostituzione diretta dell'utilizzo di attributi comeandroid:inputTypedirettamente suEditTextPreference, che non è supportato nella libreria AndroidX. Per saperne di più, consulta la guida. - È stato aggiunto
Preference.setCopyingEnabled(). Se impostato, una pressione prolungata sulla preferenza mostrerà un menu contestuale che consente di copiare il riepilogo della preferenza. - Lo stile di
SeekBarPreferenceè stato aggiornato in modo che corrisponda alle specifiche di Material. Per altre modifiche aSeekBarPreference, consulta il log delle modifiche dettagliato changelog. - Sono state apportate numerose correzioni di bug, aggiornamenti di stile, correzioni della compatibilità con il livello API e miglioramenti generali della qualità della vita.
Versione 1.1.0-rc01
2 luglio 2019
androidx.preference:preference:1.1.0-rc01 e androidx.preference:preference-ktx:1.1.0-rc01 sono stati rilasciati. I commit inclusi in questa versione sono disponibili qui.
Modifiche alle API
- È stato ritirato
Preference#onInitializeAccessibilityNodeInfo - Questo metodo ha eseguito il proxy delle informazioni sul nodo di accessibilità per una preferenza specifica, ma questo è il livello errato per questa personalizzazione. Se vuoi modificare le informazioni sull'accessibilità, devi eseguire l'override di onBindViewHolder e aggiungere le informazioni sull'accessibilità direttamente alla visualizzazione.
Versione 1.1.0-beta01
5 giugno 2019
androidx.preference:preference:1.1.0-beta01 e androidx.preference:preference-ktx:1.1.0-beta01 sono stati rilasciati. I commit inclusi in questa versione sono disponibili qui.
Modifiche importanti dalla versione 1.1.0
Se questo è il primo aggiornamento alla release 1.1.*, ecco un elenco conciso delle modifiche più importanti dall'ultima release stabile, 1.1.0. Potresti trovare utili anche la guida Impostazioni, l'app di esempio e il talk dell'Android Dev Summit.
- PreferenceFragment e altre classi che utilizzano i fragment del framework sono state ritirate. Devi utilizzare PreferenceFragmentCompat 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 saperne di più, consulta la guida.
- È stata aggiunta l'interfaccia
EditTextPreference.OnBindEditTextListener. Consente di personalizzare EditText visualizzato nella finestra di dialogo corrispondente dopo che la finestra di dialogo è stata associata. Si tratta di una sostituzione diretta dell'utilizzo di attributi come android:inputType direttamente su EditTextPreference, che non è supportato nella libreria AndroidX. Per saperne di più, consulta la guida. - È stato aggiunto
Preference.setCopyingEnabled(). Se impostato, una pressione prolungata sulla preferenza mostrerà un menu contestuale che consente di copiare il riepilogo della preferenza. - Lo stile di SeekBarPreference è stato aggiornato in modo che corrisponda alle specifiche di Material. Per altre modifiche a SeekBarPreference, consulta il log delle modifiche dettagliato.
- Sono state apportate numerose correzioni di bug, aggiornamenti di stile, correzioni della compatibilità con il livello API e miglioramenti generali della qualità della vita.
Modifiche alle API dalla versione 1.1.0-alpha05
- È stato rimosso getOnBindEditTextListener dall'API pubblica. Quando interagisci con questa API, devi utilizzare solo setOnBindEditTextListener.
Se riscontri problemi o hai suggerimenti per nuove funzionalità, segnala i bug qui.
Versione 1.1.0-alpha05
7 maggio 2019
androidx.preference:preference:1.1.0-alpha05 e androidx.preference:preference-ktx:1.1.0-alpha05 sono stati rilasciati. I commit inclusi in questa versione sono disponibili qui.
Nuove funzionalità
- È stato aggiornato lo stile delle preferenze non selezionabili. Il titolo e il riepilogo ora condividono lo stesso colore per indicare chiaramente che non è possibile interagire con loro e vengono utilizzati solo per visualizzare le informazioni.
- Nota: potresti prendere in considerazione l'aggiunta di
enableCopying="true"alle preferenze non selezionabili, in modo da poter premere a lungo per copiare il riepilogo.
Correzioni di bug
- È stata corretta una regressione per cui PreferenceCategory e altre preferenze non selezionabili avevano un effetto ripple quando venivano selezionate.
- È stato corretto un problema di accessibilità per cui TalkBack non vedeva DropDownPreference come selezionabile.
- Sono stati corretti alcuni problemi di layout RTL.
- Sono state aggiornate alcune annotazioni di nullabilità in PreferenceFragmentCompat in modo che corrispondano a Fragment.
Versione 1.1.0-alpha04
13 marzo 2019
androidx.preference:preference:1.1.0-alpha04 e androidx.preference:preference-ktx:1.1.0-alpha04 sono stati rilasciati. L'elenco completo dei commit inclusi in questa versione è disponibile qui.
Nuove funzionalità
Aggiornamento di SeekBarPreference!
- Lo stile è stato aggiornato in modo che corrisponda alle specifiche di Material.
- L'etichetta del valore ora è nascosta per impostazione predefinita, ma può comunque essere visualizzata con
app:showSeekBarValue="true"osetShowSeekBarValue(true). Questa etichetta non fa parte delle specifiche di Material, ma sappiamo che è molto utilizzata, quindi continueremo a supportarla, anche se non ne consigliamo l'utilizzo. - L'etichetta del valore ora viene aggiornata mentre la SeekBar viene trascinata, anziché quando viene rilasciata. Tieni presente che questo non significa che il valore venga aggiornato internamente. Vedi di seguito una nuova API che abilita questa funzionalità.
- Nota: anche se è supportato, ti consigliamo di evitare di impostare un riepilogo su SeekBarPreference, in quanto non è previsto e non fa parte delle specifiche di Material.
- L'etichetta del valore ora è nascosta per impostazione predefinita, ma può comunque essere visualizzata con
- È stato aggiunto il supporto per gli aggiornamenti continui, che consentono a SeekBar di aggiornare il valore salvato mentre viene trascinata. Questa funzionalità può essere attivata da XML o a livello di programmazione, con
app:updatesContinuously="true"osetUpdatesContinuously(true). Viene attivata ogni volta che la posizione di SeekBar sullo schermo cambia.
Modifiche alle API
- Sono state aggiunte le annotazioni di nullabilità mancanti a
findPreference()
Correzioni di bug
- È stato corretto un bug per cui i listener del menu contestuale non venivano rimossi correttamente se la copia non era 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 sono stati rilasciati con le seguenti modifiche.
Correzioni di bug
- È stato corretto un problema per cui a volte il popup di copia/incolla non veniva visualizzato nella finestra di dialogo di EditTextPreference.
- È stato corretto un problema per cui l'adattatore sottostante non veniva annullato correttamente, causando 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 problema per cui SummaryProvider non funzionava per MultiSelectListPreference (b/123022772).
Versione 1.1.0-alpha02
17 dicembre 2018
Dai un'occhiata anche alla guida Impostazioni e all'app di esempio aggiornate di recente.
Nuove funzionalità
È stata aggiunta l'interfaccia
EditTextPreference.OnBindEditTextListener. Consente di personalizzare EditText visualizzato nella finestra di dialogo corrispondente dopo che la finestra di dialogo è stata associata. Ad esempio, impostando un tipo / lunghezza di input personalizzato o aggiungendo un TextWatcher.È stato aggiunto
Preference.setCopyingEnabled(). Se impostato, una pressione prolungata sulla preferenza mostrerà un menu contestuale che consente di copiare il riepilogo della preferenza. Può essere utilizzato per consentire la copia di informazioni statiche come ID specifici dell'utente / informazioni sulla versione dell'applicazione.preferenceTheme ora viene applicato al tema dell'attività. Ciò significa che quando crei una preferenza dal codice, non devi più utilizzare il contesto di
PreferenceManager#getContext()ma puoi utilizzare il contesto di Fragment/Activity.
Modifiche alle API
findPreference()è stato sottoposto a refactoring per restituire<T extends Preference>Ciò significa che non devi eseguire il cast esplicito delle preferenze quando utilizzi findPreference(). 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 preferenza per configurarne dinamicamente il riepilogo ogni volta che la preferenza viene aggiornata o diventa visibile all'utente.
- Sono state aggiunte implementazioni di SummaryProvider predefinite per ListPreference e EditTextPreference, che, se impostate, aggiorneranno automaticamente il riepilogo della preferenza in modo da riflettere il valore salvato o "Non impostato" se non è stato salvato alcun valore. Questi possono essere impostati con app:useSimpleSummaryProvider="true".
- È stato aggiunto PreferenceGroup#removePreferenceRecursively, che trova e rimuove in modo ricorsivo una preferenza dal gruppo o da un gruppo nidificato più in basso nella gerarchia.
Modifiche alle API
- PreferenceFragment e altre classi che utilizzano i fragment del framework sono state ritirate. Devi utilizzare PreferenceFragmentCompat e altre classi compat.
Correzioni di bug
- È stato corretto il problema per cui iconSpaceReserved non funzionava correttamente con PreferenceCategories.
- È stato corretto il problema per cui PreferenceCategories non utilizzava colorAccent per il colore del titolo sotto l'API 21.
- Sono state corrette alcune incoerenze di layout di SeekBarPreference sotto l'API 21.