Questa pagina fornisce dettagli sulle versioni precedenti del pacchetto della libreria di supporto. Per le release più recenti della Support Library, consulta Revisioni recenti della Support Library.
Revisione 26.0.0 Beta 2
(Giugno 2017)
Tieni presente che 26.0.0-beta2 è una versione pre-release. La sua piattaforma API è soggetta a modifiche e non include necessariamente funzionalità o correzioni di bug dalle ultime versioni stabili di Support Library.
Importante: le librerie di assistenza sono ora disponibili tramite il Repository Maven di Google. Non è necessario scaricare il repository di assistenza da SDK Manager. Per maggiori informazioni, consulta la sezione Configurazione della Libreria di assistenza.
Nuove API
- Nuova classe
JobIntentService
, per aiutare gli sviluppatori a programmare le attività in modo conforme ai nuovi limiti di esecuzione in background di Android O.
Differenze API
Correzioni di bug
- Il calo dell'SDK Android O causa la perdita del corsivo in TextView
- Eccezione del puntatore nullo durante la connessione a MediaBrowserServiceCompat
- TextInputLayout deve impostare suggerimenti su onProvideAutofillStruttura()
- Overflow dello stack quando si utilizza la dimensione automatica TextView su O
Revisione 26.0.0 Beta 1
(Maggio 2017)
Tieni presente che 26.0.0-beta1 è una versione pre-release. La sua piattaforma API è soggetta a modifiche e non include necessariamente funzionalità o correzioni di bug dalle ultime versioni stabili di Support Library.
Importante: le librerie di assistenza sono ora disponibili tramite il Repository Maven di Google. Non è necessario scaricare il repository di assistenza da SDK Manager. Per maggiori informazioni, consulta la sezione Configurazione della Libreria di assistenza.
Modifiche importanti
FragmentActivity.setSupportMediaController()
eFragmentActivity.getSupportMediaController()
sono stati rimossi. Utilizza i nuovi metodi staticiMediaControllerCompat.setMediaController()
eMediaControllerCompat.getMediaController()
.BottomNavigationView
ora chiamaonNavigationItemReselected()
quando è selezionato un elemento già selezionato, anziché chiamareonNavigationItemSelected()
.- Tutte le istanze del metodo
findViewById()
ora restituiscono<T extends View> T
anzichéView
. Questa modifica ha le seguenti implicazioni:- Di conseguenza, il codice esistente ora potrebbe avere un tipo restituito ambiguo,
ad esempio se sono presenti entrambi
someMethod(View)
esomeMethod(TextView)
che ricevono il risultato di una chiamata afindViewById()
. - Quando utilizzi il linguaggio di origine Java 8, è necessario eseguire una trasmissione esplicita in
View
quando il tipo restituito non è vincolato (ad esempio,assertNotNull(findViewById(...)).someViewMethod())
. - Il tipo restituito per gli override dei metodi
findViewById()
non finali (ad esempioActivity.findViewById()
) dovrà essere aggiornato.
- Di conseguenza, il codice esistente ora potrebbe avere un tipo restituito ambiguo,
ad esempio se sono presenti entrambi
Nuove API
-
FragmentManager
eFragment
hanno un metodoisStateSaved()
per consentire di eseguire query sull'autorizzazione o meno di una transazione senza perdita di stato. Questo è particolarmente utile da verificare quando si gestisce un eventoonClick()
prima di eseguire qualsiasi transazione. - Il movimento del percorso è supportato in
AnimatedVectorDrawableCompat
. L'animazione del percorso consente a un animatore oggetto di modificare contemporaneamente due proprietà in base a un percorso; il percorso viene specificato comeandroid:pathData
nel file XML dell'animatore. - Animazione
basata sulla fisica:
- Nuovo
FlingAnimation
che supporta l'animazione con una velocità iniziale e rallenta gradualmente. - Le sottoclassi di
DynamicAnimation
supportano l'animazione della proprietà personalizzata per qualsiasi oggetto. - Ora sia
SpringAnimation
siaFlingAnimation
possono animare un valore in virgola mobile senza richiedere l'associazione diView
oObject
.
Per ulteriori informazioni, consulta le pagine di anteprima relative all'animazione primaverile e all'animazione a scorrimento.
- Nuovo
-
Supporto dei caratteri in XML:
-
ResourcesCompat.getFont
consente di caricare risorse carattere, incluso il codice XML della famiglia di caratteri, che possono essere utilizzate conTextView.setTypeface()
. - Quando utilizzi AppCompat, TextView supporta la specifica di una risorsa font o di un codice XML font-family tramite l'attributo XML
android:fontFamily
. - Utilizza la famiglia di caratteri XML per creare famiglie di caratteri con variazioni di stile e spessore. Se a questo scopo utilizzi le classi della libreria di supporto, usa gli
attributi
app:
eandroid:
.
-
- Caratteri scaricabili:
- Nuovo
FontsContractCompat
che consente di richiedere caratteri a un fornitore di caratteri invece di raggrupparli nella tua app. - I caratteri possono essere richiesti anche in XML e utilizzati nei layout.
- Nuovo
-
Raccolta di compatibilità delle emoji:
-
EmojiCompat
può elaborare un determinatoCharSequence
e aggiungereEmojiSpans
. -
EmojiTextView
e altri widget per visualizzare le emoji. -
FontRequestEmojiCompatConfig
per richiedere il carattere delle emoji a un fornitore di caratteri.
-
-
Ridimensionamento automatico di TextView:
- Nuovi metodi in
TextViewCompat
e attributi XML per controllare il dimensionamento automatico inTextView
.
- Nuovi metodi in
- Controlli di riproduzione rilassati con supporto della ricerca:
-
- Nuovo elemento
PlaybackTransportRowPresenter
per il rendering dei controlli di riproduzione con SeekBar. - Nuovo
PlaybackTransportControlGlue
che funziona conPlaybackTransportRowPresenter
e supporta la ricerca. - Nuova classe base
PlaybackSeekDataProvider
per l'app per fornire miniature di ricerca aPlaybackTransportControlGlue
.
- Nuovo elemento
- Preferenze di Data Store:
-
PreferenceDataStore
ora ti consente di implementare le tue preferenze di archiviazione, impostate con nuovi metodi inPreference
ePreferenceManager
.
-
Problemi noti
- L'integrazione della compatibilità di emoji e caratteri scaricabili con Google Play Services funziona solo su Google Play Services 11 e versioni successive, attualmente disponibile tramite il programma beta di Google Play Services.
Correzioni di bug
-
L'API
MediaBrowserCompat.search()
non funziona (problema AOSP 262170) -
ViewCompat.postInvalidateOnAnimation()
genera un'eccezione (problema AOSP 80146) -
onActivityCreated()
ha richiesto la presenza di frammenti nell'attività eliminata -
RecyclerView.isComputingLayout()
dovrebbe restituire il valore true durante il precaricamento -
Quando una transizione
Fade
viene interrotta e invertita,View
avvia l'animazione dall'inizio. (Correzione del trasferimento da Android Framework.) -
Transition.Fade
ignora l'alpha iniziale diView
(problema AOSP 221820)
Revisione 26.0.0 Alpha 1
(marzo 2017)
Tieni presente che 26.0.0-alpha1 è una versione pre-release. La sua piattaforma API è soggetta a modifiche e non include necessariamente funzionalità o correzioni di bug dalle ultime versioni stabili di Support Library.
Modifiche importanti
Nota: la versione minima dell'SDK è stata aumentata a 14. Di conseguenza, molte API che esistevano solo per la compatibilità di API < 14 sono state deprecate. I client di queste API devono eseguire la migrazione ai rispettivi framework equivalenti, come indicato nella pagina di riferimento di ogni API deprecata.
- Il modulo Percentuale di assistenza è stato ritirato. I client di questo modulo devono eseguire la migrazione al nuovo widget ConstraintLayout, che viene fornito come artefatto separato in SDK Manager.
- Il modulo relativo al frammento di supporto non ha più una dipendenza dal modulo support-media-compat.
Nuove API
Sono stati aggiunti molti nuovi metodi, classi e costanti per fornire un supporto compatibile con le versioni precedenti per le API della piattaforma aggiunte in O Preview.
IME_FLAG_NO_PERSONALIZED_LEARNING
: gli IME possono rilevare i flag "nessun apprendimento" per le app che dispongono di una modalità privata, come i browser. Questa funzionalità aiuta gli IME a capire se un'app è in modalità privata, in modo da disattivare la funzionalità di apprendimento o adattiva mentre l'app è in questa modalità.
Per un elenco completo delle modifiche all'API tra le versioni 25.2.0 e 26.0.0-alpha1, consulta il report sulle differenze dell'API della libreria di supporto.
Correzioni di bug
- In alcuni casi, semplici animazioni
AutoTransition
possono essere interrotte dalla visualizzazione dei "salti". (problema AOSP 221816)
Revisione 25.4.0
(Giugno 2017)
Importante: le librerie di assistenza sono ora disponibili tramite il Repository Maven di Google. Non è necessario scaricare il repository di assistenza da SDK Manager. Per maggiori informazioni, consulta la sezione Configurazione della Libreria di assistenza.
Modifiche importanti
- Le chiamate
executePendingTransactions()
,commitNow()
,popBackStackImmediate()
e transazioni simili non sono consentite durante i cambiamenti dello statoFragmentManager
. L'esecuzione di nuove transazioni non è sicura e oraFragmentManager
lo applica durante le modifiche dello stato. - In concomitanza con questa release della libreria di supporto, stiamo rilasciando anche la versione multidex 1.0.2. Questa versione include le seguenti modifiche importanti:
- Consente la multidex dell'APK di strumentazione.
- Depreca MultiDexTestRunner (è preferibile usare AndroidJUnitRunner).
- Offre una migliore protezione contro alcune operazioni errate di gestione dell'estrazione dell'archivio dell'app.
- Corregge un bug che potrebbe portare all'abbandono dei file temporanei.
- Consente un'installazione più rapida se eseguita in un processo simultaneo.
- Corregge un bug di installazione sulle API 19 e 20.
API nuove e modificate
Il morphing e l'interpolazione del percorso sono supportati in AnimatedVectorDrawableCompat
. Il morphing del percorso consente alle forme di cambiare da un percorso (specificato come android:valueFrom
) a un altro percorso (specificato come android:valueTo
), al fine di fornire effetti visivi complessi e accattivanti. L'interpolazione del percorso consente di specificare gli interpolatori per AnimatedVectorDrawableCompat
come percorsi (specificati come android:pathData
nell'XML dell'interpolatore).
Differenze API
Problemi risolti
- Eccezione del puntatore nullo durante la connessione a MediaBrowserServiceCompat
- L'API MediaBrowserCompat.search() non funziona (problema AOSP 262170)
- Call-to-to-called onItemClicked non funziona nella versione 25.3.0
- NullPointerException durante lo scorrimento verso l'alto e verso il basso in VerticalGridView in 25.3.1
- ClassCastException in SimpleArrayMap.allocArrays()
Revisione 25.3.1
(marzo 2017)
Problemi risolti
SwitchCompat
richiede una versione minima dell'SDK pari o superiore alla 14. (problema AOSP 251302)- L'animazione basata sulla fisica
updateListener
salta il primo frame. - L'animazione dell'etichetta
BottomNavigationView
è interrotta.
Revisione 25.3.0
(marzo 2017)
Modifiche importanti
I metadati della versione della libreria di supporto verranno aggiunti automaticamente a AndroidManifest.xml
durante la creazione da Gradle, il che semplifica il monitoraggio delle versioni nelle build pubbliche. Ecco alcuni esempi:
<meta-data android:name="android.support.VERSION" android:value="25.3.0" />
Ritiri
In questa release sono stati ritirati alcuni metodi e classi. Queste API deprecate verranno rimosse in una versione futura e gli sviluppatori dovrebbero eseguirne la migrazione. Per saperne di più su come eseguire la migrazione da un'API specifica, consulta la relativa documentazione.
ExifInterface
- Il metodo booleano
getLatLong(float[])
è deprecato. Utilizza invece il nuovo metodogetLatLong()
, che non accetta argomenti e restituiscedouble[]
. mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence)
è deprecato. Utilizza invece il nuovo metodosetErrorMessage(int, CharSequence)
, che riceve un codice di errore e una descrizione facoltativa.EXTRA_SUGGESTION_KEYWORDS
è deprecato. Utilizza invece la funzionalità di ricerca diMediaBrowserCompat
.v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount()
è stato rinominatoLinearLayoutManager.getInitialPrefetchItemCount()
. Il nome precedente è ancora supportato, ma verrà rimosso in una release futura.
API nuove e modificate
appcompat-v7
- Il nuovo metodo
ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean)
semplifica la disattivazione dell'animazione dell'icona di attivazione/disattivazione del riquadro di navigazione a scomparsa. customtabs
- È stato aggiunto il supporto per i canali di messaggistica. Consulta il riferimento
CustomTabsService.requestPostMessageChannel()
eCustomTabsService.postMessage()
per i dettagli. dynamic-animation
- Nuova libreria di animazioni basata sulla fisica che fornisce un set di API per la creazione di animazioni che reagiscono dinamicamente all'input dell'utente.
leanback-v17
- È stato aggiunto il supporto per gli sfondi con parallasse. Consulta il riferimento
Parallax
per i dettagli. - È stato aggiunto
TimePicker
il widget per scegliere gli orari sull'interfaccia TV. mediacompat
- È stata aggiunta la funzionalità di ricerca. Consulta il riferimento
MediaBrowserCompat.search()
eMediaBrowserServiceCompat.onSearch()
per i dettagli. - È stato aggiunto il supporto delle modalità di riproduzione casuale e ripetizione. Consulta il riferimento
MediaSessionCompat.setRepeatMode()
esetShuffleModeEnabled()
per i dettagli.
Problemi risolti
StaggeredGridLayoutManager
generaIllegalArgumentException
(problema AOSP 230295)- Il precaricamento
RecyclerView
non gestisce correttamente un elementoRecyclerView
collegato ma non sullo schermo LinearLayout
non riconosciuto da Robolectric- Quando
Activity
viene eliminato,onActivityCreated()
viene erroneamente richiamato per i suoi frammenti - Il costruttore
AppCompatImageView
causaArrayIndexOutOfBoundsException
- Prestazioni dell'interfaccia utente scadenti nella transizione dell'attività
Call.Details
Revisione 25.2.0
(Febbraio 2017)
Modifiche importanti
Problemi risolti
- Questa release corregge un problema grave del mediarouter per cui l'utilizzo di un dispositivo A2DP e delle API di routing dei contenuti multimediali potrebbe causare la mancata risposta del dispositivo, il che richiede il riavvio.
- La classe
FragmentManager.FragmentLifecycleCallbacks
ora è statica.
Problemi risolti
- La visualizzazione di una presentazione con mirroring dello schermo causa la disconnessione del dispositivo dalla rete Wi-Fi
- Il pulsante contenuti multimediali non gestiva correttamente le app multimediali che non si registravano autonomamente con
setMediaButtonReceiver()
-
Errore
VectorDrawable
con la risorsa stringa (problema AOSP 232407) - Suggerimento e testo dell'overlay
TextInputLayout
se il testo è impostato da XML (problema AOSP 230171) - Perdita di memoria in
MediaControllerCompat
(problema AOSP 231441) -
Arresto anomalo di
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
- Si è verificato un arresto anomalo di
RecyclerView
durante il riciclo dei visori (problema AOSP 225762) getAllowGeneratedReplies()
restituisce erroneamente false per azioni all'interno di unWearableExtender
Revisione 25.1.1
(Gennaio 2017)
Importante: esiste un bug noto nella classe android.support.v7.media.MediaRouter
nelle revisioni 25.1.1 e 25.1.0 della Support Library. Se la tua app utilizza
MediaRouter
v7,
devi eseguire l'aggiornamento alla versione Support Library Revision 25.2.0,
che corregge questo bug.
Modifiche importanti
-
Le transazioni relative ai frammenti possono ora essere ottimizzate all'interno e tra le transazioni. L'ottimizzazione delle operazioni delle transazioni con frammenti può eliminare quelle che vengono annullate. Ad esempio, supponiamo che vengano eseguite due transazioni insieme: una che aggiunge un frammento A e un'altra che sostituisce il frammento A con il frammento B. In questo caso, la prima operazione potrebbe essere annullata e verrà aggiunto solo il frammento B. Ciò significa che il frammento A potrebbe non essere sottoposto al ciclo di vita di creazione/distruzione.
Un effetto collaterale di questa ottimizzazione è che i frammenti potrebbero avere variazioni di stato fuori dall'ordine previsto. Ad esempio, supponiamo che a una transazione vengano aggiunti il frammento A, un secondo aggiunga il frammento B e poi un terzo rimuova il frammento A. Senza l'ottimizzazione, il frammento B potrebbe aspettarsi che durante la creazione esista anche il frammento A, in quanto il frammento A verrà rimosso dopo l'aggiunta del frammento B. Con l'ottimizzazione, il frammento B non può garantire che il frammento A esista durante la creazione di B, poiché la creazione e l'eliminazione del frammento A potrebbero essere rimosse dall'ottimizzazione.
Questa ottimizzazione è disattivata per impostazione predefinita. Per attivare l'ottimizzazione, chiama
FragmentTransaction.setAllowOptimization(true)
. - Ora i frammenti possono posticipare le transizioni e le animazioni finché non sono pronti utilizzando
Fragment.postponeEnterTransition()
eFragment.startPostponedEnterTransition()
. Questa API è simile alle APIActivity.postponeEnterTransition()
eActivity.startPostponedEnterTransition()
utilizzate con le transizioni delle attività.
Problemi risolti
-
Errore di
MediaSessionCompatTest
conIllegalArgumentException
-
DetailsFragment.installTitleView()
non viene chiamato nella versione 25.1.0 - La transazione del frammento mantiene la visualizzazione fantasma all'uscita (problema AOSP 230679)
-
BottomNavigationView
richiede una spaziatura tra l'icona dell'elemento e il testo (problema AOSP 230653) - I listener selezionati non sono presenti nei nuovi
PlaybackFragment
ePlaybackSupportFragment
-
Lo stato attivo di
TextInputLayout
non cambia correttamente nell'emulatore dalla versione 25.1.0 della libreria di assistenza (problema AOSP 230461) - Impossibile sostituire il menu di
BottomNavigationView
(problema AOSP 230343) -
RecyclerView
conStaggeredGridLayoutManager
arresti anomali con elementi dell'intero intervallo (problema AOSP 230295) - Arresto anomalo in
MediaSessionCompat
quando si utilizzasetCallback(null)
-
PlaybackGlueHostOld
ePlaybackSupportGlueHostOld
non inviano notifiche ai callback quando cambia la riga di riproduzione -
PlaybackOverlayFragment
esempio Impossibile avviare la riproduzione di/test
-
RecyclerViewFocusRecoveryTest
non riesce a eseguire l'API 15 - La riga "Screenshot" si trova nella parte superiore dello schermo
-
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
arresto anomalo dell'API 15 -
setActions()
inonSubactionClicked()
non funziona -
RecyclerView
arresti anomali durante il riciclo di alcuni visori
Revisione 25.1.0
(Dicembre 2016)
Importante: esiste un bug noto nella classe android.support.v7.media.MediaRouter
nelle revisioni 25.1.1 e 25.1.0 della Support Library. Se la tua app utilizza
MediaRouter
v7,
devi eseguire l'aggiornamento alla versione Support Library Revision 25.2.0,
che corregge questo bug.
Modifiche importanti
- I client dei widget
RecyclerView
nidificati (ad esempio, elenchi a scorrimento verticale di elenchi a scorrimento orizzontale) possono ottenere vantaggi significativi in termini di prestazioni suggerendo ai gestori del layout dei widgetRecyclerView
interni quanti elementi preparare prima di essere fatti scorrere sullo schermo. RichiamaLinearLayoutManager.setInitialPrefetchItemCount(N)
, dove N è il numero di visualizzazioni visibili per elemento interno. Ad esempio, se i tuoi elenchi orizzontali interni mostrano un minimo di tre visualizzazioni e mezzo di elementi alla volta, puoi migliorare le prestazioni chiamandoLinearLayoutManager.setInitialPrefetchItemCount(4)
. In questo modo,RecyclerView
può creare in anticipo tutte le visualizzazioni pertinenti, mentre l'RecyclerView
esterno è in corso di scorrimento, il che riduce notevolmente la quantità di stuttering durante gli scorrimenti. FragmentActivity.setSupportMediaController()
eFragmentActivity.getSupportMediaController()
sono stati deprecati. Utilizza i nuovi metodi staticiMediaControllerCompat.setMediaController()
eMediaControllerCompat.getMediaController()
.- Quando un client specifica la tinta di un widget tramite la colorazione dell'appcompat (ad esempio
appcompat:buttonTint
), deve fornire tutti gli stati necessari (ad esempio, "disattivato", "premuto" e così via). Ciò è coerente con il modo in cui le tonalità dei widget vengono specificate quando si utilizza la colorazione del framework.
API nuove e modificate
- È stata aggiunta la libreria di supporto di ExifInterface. Questa libreria separa il supporto per la lettura di informazioni EXIF da file JPEG e in formato non elaborato, nonché l'impostazione delle informazioni EXIF sui file immagine JPEG.
Snackbar
è stato sottoposto a refactoring per consentire alle app di visualizzare contenuti personalizzati.BaseTransientBottomBar
è la nuova classe di base che espone il comportamento generale di scorrimento e animazioni.- È stato aggiunto un nuovo pacchetto leanback.media contenente classi helper per integrare i lettori multimediali nelle applicazioni Android TV.
- È stato aggiunto
SeekBarPreference
con layout e attributi personalizzabili alla libreria di supporto delle preferenze V7. - È stato aggiunto il corso
ArraySet
alla libreria di assistenza v4. Questa classe corrisponde alla classeArraySet
del framework che è stata introdotta con il livello API 23. RecyclerView
Miglioramenti al precaricamento degli articoli di RecyclerView:- Il precaricamento
RecyclerView
nidificato consente il precaricamento dei contenuti da unRecyclerView
all'interno di un altroRecyclerView
a scorrimento, con l'API che consente di controllare la quantità di precaricamento che viene eseguita: - API aggiunte per l'implementazione di oggetti
LayoutManager
personalizzati per consentire il precaricamento durante scorrimenti e scorrimenti. - Miglioramenti al precaricamento per eseguire solo il maggior lavoro possibile di creazione/associazione nell'intervallo di tempo tra un frame e l'altro
- Il precaricamento
Problemi risolti
- L'opzione di attivazione/disattivazione della visibilità della password non supera i test di accessibilità.
- Appcompat non rispetta
state_enabled
sui dispositivi pre-L. - Meccanismo di recupero dello stato attivo aggiunto a
RecyclerView
. In questo modo è stato corretto anche il supporto dei frammenti di preferenza non focalizzati durante l'utilizzo della navigazione con DPAD, ad esempio sui dispositivi Android TV. - Leanback: ExploreFragment si arresta in modo anomalo con intestazioni disattivate e adattatore vuoto.
- Appcompat:
AlertDialog
è troppo largo. InputContentInfoCompat
chiamarequestPermission()
quando dovrebbe chiamarereleasePermission()
.MediaBrowserCompat
arresti anomali.- CoordinatorLayout misura/presenta le visualizzazioni quando la visibilità è impostata su
GONE
. - Impossibile applicare la colorazione a
AnimatedVectorDrawableCompat
in un livello API inferiore a 24 - La libreria Leanback attiva errori di lint fittizi
- La libreria di tavolozza ha causato errori di test a ogni livello API
RecyclerView
test non riusciti su Leanback- Si è verificato un arresto anomalo di
RecyclerView
durante il riciclo dei visori (problema AOSP 225762) Fragment.onDestroy()
non richiesto per frammento in backstack- Lo scrim
CollapsingToolbarLayout
non viene disegnato quando è compresso - Lanci di
CoordinatorLayout.offsetChildByInset()
IllegalArgumentException
- L'animazione di
RecyclerView
elementi scollega gli elementiRecyclerView
interni, evitando precaricamenti futuri - Impossibile precaricare gli elementi associati di
RecyclerView
- I dati di precaricamento degli elementi
RecyclerView
nidificati vengono eliminati durante il primo layout - Il precaricamento di
RecyclerView
non va a buon fine se due eventi di trascinamento arrivano alla stessa posizione RecyclerView
deve eseguire il layout in modo speculativo durante il rendering di RenderThread- Le risorse colore configurate per la notte convertite in Drawables non vengono sempre eliminate correttamente dalla cache delle risorse
FloatingActionButton
: l'impostazione programmatica di BackgroundTintList non funziona correttamente (problema AOSP 227428)TextInputLayout
: il tipo di carattere non viene impostato per ErrorView (problema AOSP 227803)TextInputLayout
torna sempre al colore di errore della spia inferiore all'API 23 (problema AOSP 221992)FloatingActionButton
viene visualizzato come premuto quando il puntatore esce
Un elenco completo delle correzioni di bug pubbliche è disponibile nel Issue Tracker di AOSP.
Ritiri
In questa release sono stati ritirati alcuni metodi e classi. Queste API deprecate verranno rimosse in una versione futura e gli sviluppatori dovrebbero eseguirne la migrazione. Per saperne di più su come eseguire la migrazione da un'API specifica, consulta la relativa documentazione.
-
android.support.design.widget
-
android.support.v17.leanback.app
BackgroundManager.getDefaultDimLayer()
BackgroundManager.getDimLayer()
BackgroundManager.setDimLayer()
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[])
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.getFragment()
PlaybackControlGlue.getOnItemViewClickedListener()
PlaybackControlGlue.onRowChanged()
PlaybackControlGlue.pausePlayback()
PlaybackControlGlue.skipToNext()
PlaybackControlGlue.skipToPrevious()
PlaybackControlGlue.startPlayback()
PlaybackControlSupportGlue
PlaybackOverlayFragment
PlaybackOverlaySupportFragment
-
android.support.v17.leanback.widget
-
android.support.v4.app
FragmentActivity.getSupportMediaController()
FragmentActivity.setSupportMediaController()
Revisione 25.0.1
(Novembre 2016)
Problemi risolti
- L'opzione di attivazione/disattivazione delle password di
TextInputLayout
è ora disattivata per impostazione predefinita per evitare sovrascritture non necessarie dei disegni finali specificati dallo sviluppatore. Può essere attivata manualmente tramite l'attributo XMLpasswordToggleEnabled
. BottomNavigationView
elemento ora è una singola riga per soddisfare le specifiche del materiale.- Arresto anomalo di
RecyclerView
durante il precaricamento se Gestione layout è null. - L'altitudine
BottomNavigationView
è ora impostata correttamente. (problema AOSP 226182) - Si è verificato un arresto anomalo di
BottomNavigationView
durante l'aggiunta di voci di menu in modo programmatico. (problema AOSP 225731) - Correggi i
TextInputLayout
disegnabili composti da sinistra+destra. (problema AOSP 225836) RecyclerView
arresti anomali durante il riciclo dei visori. (problema AOSP 225762)- Leanback: TalkBack spesso pronuncia la parola "nullo" nelle visualizzazioni a schermo diviso.
RecyclerView
: problemi di rendering in Android Studio. (problema AOSP 225753)BottomNavigationView
continua a mostrare la voce di menu come selezionata dopo cheonNavigationItemSelected()
ha restituito false. (problema AOSP 225898)- ForwardingListener genera
NoSuchMethodError
. (Problema AOSP 225647) TextInputEditText
non mostra i suggerimenti in modalità di estrazione IME. (problema AOSP 221880)
Un elenco completo delle correzioni di bug pubbliche è disponibile nel Issue Tracker di AOSP.
Revisione 25.0.0
(Ottobre 2016)
Modifiche importanti
- Il costruttore
ContextCompat
è stato reso protetto. Questa classe non deve essere creata pubblicamente, ma può essere estesa dalle librerie di supporto che hanno come target i livelli API più recenti. - Il costruttore
ActivityCompat
è stato reso protetto. Questa classe non deve essere creata pubblicamente, ma può essere estesa dalle librerie di supporto che hanno come target i livelli API più recenti. getReferrer(Activity)
è stato impostato come statico.-
L'utente
android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V)
è stato rimosso. Qualsiasi implementazione da parte del client di questo metodo deve essere rimossa. -
L'utente
android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object)
è stato rimosso. Gli utilizzi devono essere sostituiti con il metodo più denominatofromMediaSession()
. -
L'utente
android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object)
è stato rimosso. Gli utilizzi devono essere sostituiti con il metodo più appropriatoMediaSessionCompat.QueueItem#fromQueueItem
. -
L'utente
android.support.v7.widget.Space
è stato rimosso. Gli utilizzi devono essere sostituiti conandroid.support.v4.widget.Space
.
Nuove API
-
android.support.design.widget.BottomNavigationView
implementa il pattern di navigazione in basso dalle specifiche di Material Design. - Il nuovo pacchetto
android.support.v13.view.inputmethod
include classi per accedere alle funzionalità diandroid.view.inputmethod.InputConnection
introdotte dopo il livello API 13. -
La classe
android.v7.widget.RecyclerView.DividerItemDecoration
fornisce un'implementazione di base per i divisori verticali o orizzontali tra gli elementi. - Nuovi stili decorati in
android.support.v7.app.NotificationCompat
,DecoratedCustomViewStyle
eDecoratedMediaCustomViewStyle
, classi di mirroring aggiunte nell'API 24 della piattaforma.
Problemi risolti
Un elenco completo delle correzioni di bug pubbliche è disponibile nel Issue Tracker di AOSP.
Revisione 24.2.1
Settembre 2016
Problemi risolti:
FloatingActionButton
non può più essere ancorato a elementi secondari indiretti diCoordinatorLayout
. (problema AOSP 220250)- L'immagine all'interno di
CollapsingToolbarLayout
non viene ridimensionata correttamente confitsSystemWindows=true
. (problema AOSP 220389) CoordinatorLayout
generaIndexOutOfBoundsException
quandoSnackbar
viene mostrato e ignorato. (Problema AOSP 220762)TextInputLayout
non è in grado di risolvere il colore del testo dell'errore. (problema AOSP 220305)BatchedCallback.onMoved()
chiamaBatchedCallback.onInserted()
. (problema AOSP 220309)TextInputLayout
esegue l'override del comando composto a destra. (problema AOSP 220728)
Un elenco completo delle correzioni di bug pubbliche è disponibile nel Issue Tracker di AOSP.
Revisione 24.2.0
Agosto 2016
La versione 24.2.0 contiene le seguenti modifiche:
- Suddivisione della libreria di supporto versione 4
- Aggiornamenti delle API
- Modifiche al comportamento
- Ritiri
- Correzioni di bug
Nota: la release 24.2.0 rimuove il supporto per Android 2.2 (livello API 8) e versioni precedenti. Le classi e i metodi che esistono solo per pubblicare queste versioni di sistema sono ora contrassegnati come deprecati e non devono più essere utilizzati. Queste classi e questi metodi deprecati potrebbero essere rimossi in una release futura.
Suddivisione libreria di supporto v4
In questa release, la v4 Support Library è stata suddivisa in diversi moduli più piccoli:
-
support-compat
-
Fornisce wrapper di compatibilità per le nuove API del framework, come
Context.getDrawable()
eView.performAccessibilityAction()
. -
support-core-utils
-
Fornisce una serie di classi di utilità, come
AsyncTaskLoader
ePermissionChecker
. -
support-core-ui
-
Implementa una serie di componenti relativi all'interfaccia utente, come
ViewPager
,NestedScrollView
eExploreByTouchHelper
. -
support-media-compat
-
Esegue il backport di parti del framework media,
tra cui
MediaBrowser
eMediaSession
. -
support-fragment
-
Esegue il backup del framework frammento. Questo modulo ha dipendenze su
support-compat
,support-core-utils
,support-core-ui
esupport-media-compat
.
Per compatibilità con le versioni precedenti, se elenchi support-v4
nello script Gradle, l'APK includerà tutti questi moduli. Tuttavia, per ridurre le dimensioni dell'APK, ti consigliamo di elencare solo i moduli specifici necessari per la tua app.
Aggiornamenti dell'API
- I client che utilizzano le schede personalizzate possono
controllare se aprire le app istantanee. Tieni presente che le app istantanee non sono ancora in disponibilità generale. Per attivare o disattivare le app istantanee, chiama il numero
CustomTabsIntent.Builder.setInstantAppsEnabled()
o specificaEXTRA_ENABLE_INSTANT_APPS
. Per impostazione predefinita, le schede personalizzate abilitano per impostazione predefinita le app istantanee, non appena questa funzionalità diventa disponibile. TextInputLayout
aggiunge il supporto per il pulsante di attivazione/disattivazione della visibilità delle password dalla specifica di material design.- Il nuovo pacchetto
android.support.transition
esegue il backport del framework Transizioni ai livelli API 14 e successivi. Per saperne di più, consulta il riferimentoandroid.support.transition
. - La libreria di supporto delle schede personalizzate aggiunge il supporto per l'utilizzo di
RemoteViews
nella barra degli strumenti secondaria. Il metodosetToolbarItem()
esistente è deprecato. AppCompatResources
aggiunge la possibilità di caricare<vector>
(su livello API 9 e livelli successivi) o<animated-vector>
(su livello API 11 e livelli successivi) da un ID risorsa, utilizzando il nuovo metodogetDrawable()
.CoordinatorLayout
ora supporta la definizione di viste integrate e la specifica che le altre viste devono schivare quelle inserite. Questo consente alle app di replicare modelli di comportamento in modo simile all'eliminazione diFloatingActionButton
da un valoreSnackbar
, ma per qualsiasi elemento secondario con visualizzazione arbitraria. Per maggiori informazioni, consulta la documentazione di riferimento diLayoutParams.insetEdge
eLayoutParams.dodgeInsetEdges
.- La nuova classe
DiffUtil
può calcolare la differenza tra due raccolte e può inviare un elenco di operazioni di aggiornamento adatte a essere utilizzate da una classeRecyclerView.Adapter
. -
È stato aggiunto
RecyclerView.OnFlingListener
per supportare il comportamento personalizzato in risposta alle azioni. La classeSnapHelper
fornisce un'implementazione specifica per l'agganciamento delle viste figlio e la classeLinearSnapHelper
estende questa implementazione per fornire un comportamento di agganciamento allineato al centro simile aViewPager
. - La libreria delle schede personalizzate ora consente ai client di richiedere la UI standard del browser, anziché la UI delle schede personalizzate, chiamando
CustomTabsIntent.setAlwaysUseBrowserUI()
. Questo comportamento è utile nei casi in cui il browser utilizza per impostazione predefinita la UI delle schede personalizzate, ma l'utente ha espresso una preferenza per l'UI del browser standard.
Modifiche al comportamento
- Se utilizzi la funzionalità giorno/notte della libreria di appcompat, il sistema ora ricrea automaticamente la tua attività ogni volta che la modalità giorno/notte cambia (a causa dell'ora del giorno o di una chiamata al numero
AppCompatDelegate.setLocalNightMode()
). - Se la barra di stato è trasparente,
Snackbar
ora viene spostata dietro la barra di navigazione.
Libreria MediaRouter
I dispositivi Bluetooth non sono più elencati come percorsi multimediali. Ora il routing dell'audio ai dispositivi Bluetooth è controllato esclusivamente a livello di sistema Android.
Ritiri
Le classi e i metodi ritirati saranno soggetti a rimozione in una versione futura. Devi eseguire la migrazione da queste API il prima possibile.
- Diversi metodi delle seguenti classi erano obbligatori solo per l'API 8 e versioni precedenti, pertanto non dovrebbero più essere utilizzati. Utilizza invece le implementazioni del framework.
android.support.v4.view.KeyEventCompat
: sostituisci conKeyEvent
android.support.v4.view.MotionEventCompat
: utilizzaMotionEvent
android.support.v4.view.ViewCompat
: utilizzaView
android.support.v4.view.ViewConfigurationCompat
: utilizzaViewConfiguration
-
AccessibilityServiceInfoCompat.getDescription()
è stato deprecato a favore diAccessibilityServiceInfoCompat.loadDescription()
, che restituisce una descrizione localizzata correttamente. - Non devi creare un'istanza diretta della classe
ActivityCompat
. Il metodogetReferrer(Activity)
non statico verrà reso statico in una release futura. CoordinatorLayout.Behavior.isDirty()
è stato deprecato e non viene più chiamato daCoordinatorLayout
. Tutte le implementazioni, nonché qualsiasi chiamata a questo metodo, devono essere rimosse.MediaSessionCompat.obtain()
è stato deprecato e sostituito con il nome più appropriatofromMediaSession()
.MediaSessionCompat.QueueItem.obtain()
è stato deprecato e sostituito con il metodo con nome più appropriatofromQueueItem()
.- Diverse classi astratte sono state ritirate e sostituite con interfacce che riflettono più da vicino i loro equivalenti framework.
AccessibilityStateChangeListenerCompat
è stato sostituito dall'interfacciaAccessibilityManagerCompat.AccessibilityStateChangeListener
.OnCloseListenerCompat
è stato sostituito dall'interfacciaSearchViewCompat.OnCloseListener
.OnQueryTextListenerCompat
è stato sostituito dall'interfacciaSearchViewCompat.OnQueryTextListener
.
CustomTabsSession.setToolbarItem()
è stato deprecato e sostituito dalsetSecondaryToolbarViews()
basato su RemoteView.
Correzioni di bug
Con la versione 24.2.0 sono stati risolti i seguenti problemi noti:
- Assicurati che l'indicatore
SwipeRefreshLayout
venga mostrato quandosetRefreshing(true)
viene chiamato prima del primo superamento della misurazione (problema AOSP 77712) - Evita lo sfarfallio di
TabLayout
quando cambi pagina (problema AOSP 180454) - Evita
ClassNotFoundException
durante l'annullamento del marshalling diSavedState
a un livello API 11 e a livelli precedenti (problema AOSP 196430)
Un elenco completo delle correzioni di bug pubbliche è disponibile nel Issue Tracker di AOSP.
Revisione 24.1.1
Luglio 2016
Problemi risolti:
- Risolvi un problema nella release 24.1.0 che interessava gli ID risorsa condivisi tra librerie di supporto. A causa di questo problema, le app che dipendevano da librerie di supporto con risorse (come design e appcompat) riscontravano problemi causati da mancate corrispondenze degli ID risorsa.
Revisione 24.1.0
Luglio 2016
- Modifiche per la libreria di assistenza v4:
-
NotificationCompat.Action.WearableExtender
ha nuovi metodi pergetHintDisplayActionInline()
esetHintDisplayActionInline()
per la compatibilità con l'anteprima di Android Wear 2.0. Questi metodi consentono a un'applicazione di specificare che un'azione deve essere visualizzata in linea con la notifica.- La chiamata a
Fragment.setUserVisbileHint()
non causerà più l'avvio di un frammento se il suggerimento è stato aggiunto a unFragmentTransaction
di cui non è stato ancora eseguito il commit. Questo interessa gli utenti diFragmentPagerAdapter
che sostituisconosetUserVisbileHint()
e assumono uno stato specifico del ciclo di vita del frammento dopo aver chiamatosuper.setUserVisibleHint()
. Per maggiori informazioni, consulta la pagina di riferimento della documentazione relativa aFragment.setUserVisbileHint()
.
Problemi risolti:
- TabLayout.setCustomView(null) restituisce NullPointerException (problema AOSP 214753)
- TabLayout evidenzia erroneamente le schede personalizzate (problema AOSP 214316)
- AppCompatTextHelper utilizza un array di attributi ordinato in modo errato (problema AOSP 214366)
- Impossibile fare riferimento a VectorDrawable dal file XML del container disegnabile quando si utilizza ContextWrapper personalizzato (problema AOSP 214055)
- ViewDragHelper.saveLastMotion() restituisce ArrayIndexOutOfBoundsException (problema AOSP 212945)
- BottomSheetBehavior si espande all'altezza del contenuto precedente quando si utilizza setState(STATE_EXPANDED) (problema AOSP 213660)
- CollapsingToolbarLayout non gestisce elementi secondari fissabili con margine superiore o inferiore (problema AOSP 213001)
- Il titolo della consultazione Leanback non supporta l'allineamento RTL (problema AOSP 213461)
- PagerTabStrip scompare a causa di un'annotazione ereditata mancante (problema AOSP 213359)
- L'associazione di dati restituisce NullPointerException quando viene utilizzato un valore booleano per impostare flag condizionali (problema AOSP 191841)
- CoordinatorLayout non risponde a setFitsSystemWindows() (problema AOSP 212720)
- Arresti anomali di BottomSheetBehavior durante l'impostazione dello stato iniziale (problema AOSP 203114)
- ViewPager salta le pagine se l'indice delle pagine ha un valore elevato (problema AOSP 211734)
- BottomSheetBehavior non funziona con i layout dinamici (problema AOSP 205226)
Revisione 24.0.0
Giugno 2016
- Modifiche per la libreria di assistenza v4:
-
Fragment.commitNow()
aggiunto per il commit sincrono- Aggiunta di
NotificationCompat.MessagingStyle
per le conversazioni con più parti NotificationManagerCompat.areNotificationsEnabled()
egetImportance()
aggiuntiMediaSessionCompat
ora rispecchia la funzionalità diMediaSession
e non chiama piùsetMediaButtonReceiver()
automaticamente
Nota: solo
MediaBrowserServiceCompat
nella versione 24.0.0 è compatibile con le versioni future di Android successive all'API 24. Se utilizzi versioni precedenti, esegui l'aggiornamento a questa versione per garantire la compatibilità. - Modifiche per la libreria di app v7:
-
- Aggiunto il supporto per fare riferimento a oggetti
ColorStateList
a tema da XML
- Aggiunto il supporto per fare riferimento a oggetti
- Modifiche per la Design Support Library:
-
- Miglioramenti alla gestione
AppBarLayout
dell'altitudine utilizzandoStateListAnimator
- Miglioramenti alla gestione
- Modifiche per la libreria Leanback v17:
-
- È stato aggiunto
OnboardingFragment
per fornire il flusso di benvenuto e configurazione alla prima esecuzione
- È stato aggiunto
- Modifiche per le schede personalizzate:
-
- Aggiunto il supporto per fornire una gerarchia
RemoteViews
per la barra degli strumenti secondaria - Aggiunto
CustomTabsClient.connectAndInitialize()
per il riscaldamento di una riga
- Aggiunto il supporto per fornire una gerarchia
Revisione 23.4.0
Maggio 2016
- Modifiche per la libreria di assistenza v4:
-
- È stato risolto il problema a causa del quale i frammenti venivano aggiunti nell'ordine sbagliato. (Problema 206901)
- È stato risolto il problema a causa del quale la barra dell'app non veniva disegnata dopo essere stata spostata al di fuori dello schermo. (Problema 178037)
- Modifiche per la libreria di app v7:
-
- Aggiunto il metodo
AppCompatDelegate.setCompatVectorFromResourcesEnabled()
per riattivare l'utilizzo di tracce di disegno vettoriali in oggettiDrawableContainer
su dispositivi con Android 4.4 (livello API 19) e versioni precedenti. Consulta AppCompat v23.2 - L'età dei vettori per ulteriori informazioni. - Risolto un problema nell'API 23 per cui
AppCompatDelegate.setDefaultNightMode()
non caricava le risorse corrette nel livello API 23. (Problema 206573) - Risolto il problema che poteva causare
NullPointerException
. (Problema 207638)
- Aggiunto il metodo
- Modifiche per la Design Support Library:
-
- Risolto un problema per cui
TextInputLayout
non cancella la tinta dell'errore doposetErrorEnabled(false)
nel livello API 21-22 (Problema 202829) - Risolto un problema per cui
FloatingActionButton
non restituisce quando le animazioni sono disattivate. (Problema 206416) - È stato risolto il problema nella funzionalità di agganciamento di
AppBarLayout
quando utilizzata con
flag di scorrimento. (Problema 207398)scroll
|enterAlways
|enterAlwaysCollapsed
|snap
- Risolto un problema per cui
- Modifiche alla Libreria di disegni vettoriali:
-
- Risolto un bug per cui
VectorDrawableCompat
non viene visualizzato correttamente inTextView
al livello API 23. (Problema 206227)
- Risolto un bug per cui
Revisione 23.3.0
Aprile 2016
- Modifiche per la libreria di assistenza v4:
-
- È stato aggiunto
AppLaunchChecker
per aiutarti a monitorare in che modo la tua app è stata lanciata dall'utente in passato.hasStartedFromLauncher()
ti consente di sapere se l'utente ha già avviato la tua app dalla schermata Home o se l'app è stata avviata solo in altri modi (ad esempio, per visualizzare URL web specifici). - È stata corretta una perdita di memoria in
MediaBrowserServiceCompat.mConnections
. (Problema 205220) - È stato risolto il problema a causa del quale
ViewPager
non tiene conto dei margini della pagina quando si capovolge. (Problema 203816) - Ora il file
Fragment.onRequestPermissionsResult()
viene consegnato ai frammenti secondari.
- È stato aggiunto
- Modifiche per la libreria di app v7:
-
- Risolto un problema in
AppCompatSpinner
che poteva causare la visualizzazione di più popup. (Problema 205052) - Risolto il problema di colorazione dei pulsanti senza bordo. (Problema 202967)
- Risolto un problema di compatibilità tra
AppCompatDialogFragment
eAlertDialog
. (Problema 204805) - Sono state ripristinate le modifiche a
TintResources
che causavano problemi di memoria e configurazione. (Problema 205236)
- Risolto un problema in
- Modifiche per la libreria mediarouter v7:
-
- È stato corretto il comportamento del dispositivo di scorrimento del volume
MediaRouteControllerDialog
. (Problema 202299)
- È stato corretto il comportamento del dispositivo di scorrimento del volume
- Modifiche per la libreria Preferenza v7:
-
- È stato risolto il problema per cui
PreferenceFragmentCompat
si arrestava in modo anomalo se veniva specificatodividerHeight
. (Problema 204778)
- È stato risolto il problema per cui
- Modifiche alla libreria v7 recyclerview:
-
- Risolto un bug per cui
RecyclerView
non richiamava i callback di scorrimento se l'intervallo di elementi visibili si riduceva. (Problema 200987) - Risolto un bug per cui
RecyclerView
si bloccava se si trovava nel layout lineare, era ponderato e conteneva immagini. (Problema 203276) - Risolto un arresto anomalo in
OrientationHelper.getStartAfterPadding()
. (Problema 180521) - È stato risolto un arresto anomalo con l'utilizzo di
android:nestedScrollingEnabled
. (Problema 197932)
- Risolto un bug per cui
- Modifiche per la Design Support Library:
-
- È stato corretto un bug per cui un riquadro inferiore nascosto gestiva gli eventi di tocco. (Problema 203654)
- Risolto un problema di layout relativo a
BottomSheetBehavior
quandofitsSystemWindows
era true. (Problema 203057) - Risolto un problema di accessibilità con
Snackbar
. (Problema 182145) - È stato risolto un problema che causava l'arresto anomalo durante lo scorrimento di
Snackbar
. (Problema 203924) - È stato corretto un bug in
AppBarLayout
conenterAlways
. (Problema 203661) - Risolto un bug per cui
TextInputLayout
cancella inutilmente il filtro del colore di sfondo dell'oggettoEditText
. (Problema 203357)
Revisione 23.2.1
Marzo 2016
- Modifiche per la libreria di assistenza v4:
-
- È stata corretta un'eccezione in
DrawableCompat.wrap()
eLayerDrawable
per i livelli API da 17 a 19. (Numero 201817) - È stato corretto un
ArrayIndexOutOfBoundsException
inViewDragHelper.shouldInterceptTouchEvent()
. (Problema 182262) - Risolto un bug in
ViewPager
relativo al calcolo dello scorrimento per le modifiche delle dimensioni. - Risolto il problema di
NullPointerException
quandoDrawerLayout.removeDrawerListener()
viene chiamato senza un valoreDrawerLayout.DrawerListener
impostato. (Problema 202478) - Risolto un bug per cui
ViewPager
non impostava correttamente i parametriAccessibilityEvent
durante lo scorrimento. - Risolto un problema che causava un ritardo durante la rotazione del dispositivo quando si utilizzava
Drawable.wrap()
. (Numero 201924)
- È stata corretta un'eccezione in
- Modifiche per la libreria di app v7:
-
- È stata ripristinata la dipendenza dagli asset vettoriali in modo che gli sviluppatori che utilizzano la libreria appcompat non siano costretti a utilizzare
VectorDrawable
e i flag build associati. - Risolto un problema di compatibilità con la modalità notturna e il livello API 23. (Problema 201910)
- Risolto un problema di compatibilità con
SwitchCompat
e con il livello API 7. (Problema 201942) - Risolto un problema relativo alla propagazione dei valori di configurazione negli oggetti Risorse Problema 201928
- Risolto un problema di compatibilità per cui il pulsante Annulla
android.support.v7.app.NotificationCompat.MediaStyle
diventa invisibile a livello API 21 e livelli precedenti. (Problema 202156) - Risolto un arresto anomalo di compatibilità con
AppCompatSpinner
a livello API 21 e livelli precedenti. (Problema 202246) - Risolto un problema per cui lo stile
app:textAllCaps = "false"
non funzionava. (Numero 202117) - È stato risolto un problema di arresto anomalo durante il ripristino di
SearchView
. (Problema 201836) - È stata corretta una perdita di memoria che si verificava durante la colorazione delle risorse disegnabili mediante AppCompat. (Problema 202379)
- Risolto un problema relativo a
KeyEvent
nel livello API 11 e precedente. (Problema 202939)
- È stata ripristinata la dipendenza dagli asset vettoriali in modo che gli sviluppatori che utilizzano la libreria appcompat non siano costretti a utilizzare
- Modifiche per la libreria delle visualizzazioni schede versione 7:
-
- Aggiunto il supporto della modalità notturna per
CardView
. (Problema 194497)
- Aggiunto il supporto della modalità notturna per
- Modifiche alla libreria v7 recyclerview:
-
- Sono stati corretti bug relativi a vari metodi di misurazione e specifica. (Problema 201856)
- È stato ridotto il periodo di blocco durante il quale
RecyclerView
non consente modifiche dell'adattatore durante il calcolo di un layout o uno scorrimento. (Problema 202046) - È stato risolto l'arresto anomalo durante la chiamata a
notifyItemChanged()
per un elemento che non era visibile. (Problema 202136) - Risolto un arresto anomalo che si verificava quando
RecyclerView.LayoutManager
aggiunge e rimuove una visualizzazione nello stesso passaggio di misurazione. (Problema 193958)
- Modifiche per la libreria mediarouter v7:
-
- Risolto un arresto anomalo che si verificava durante la chiamata a
MediaRouter.getInstance()
nel livello API 17. (Problema 180654)
- Risolto un arresto anomalo che si verificava durante la chiamata a
- Modifiche per la v17 Leanback Library:
-
- Risolto un problema relativo a
GridLayout.onAddFocusables()
che causava la selezione dell'elemento sbagliato. - È stato risolto il problema a causa del quale le azioni
GuidedStepFragment
scomparivano dopo la compressione di un'azione.
- Risolto un problema relativo a
- Modifiche per la Design Support Library:
-
- Risolto un arresto anomalo di
TabLayout
causato dal pool di schede. (Problema 201827) - Risolto un bug in
NavigationView
che causava la selezione del colore errato. (Problema 201951) - Risolto un bug per cui
setBackgroundTintList()
non era più in grado di modificare il colore di sfondo. (Problema 201873) - Risolto il problema per cui
AppBarLayout
non scorreva completamente fuori dalla visualizzazione quando utilizzato conandroid:fitsSystemWindows = “true”
. (Problema 201822) - Risolto il problema per cui
BottomSheetDialog
non mostrava correttamente le visualizzazioni di contenuti brevi. (Problema 201793) - Risolto un problema per cui
BottomSheetDialogFragment
si spostava sporadicamente quando venivano modificati i contenuti al suo interno. (Problema 202125) - Risolto un arresto anomalo nel link del contatore TextInputLayout.
- Risolto un arresto anomalo che si è verificato quando
TextInputLayout.getCounterMaxLength()
ha ripristinato uno stato salvato. (Problema 202375) - È stato corretto un
ClassCastException
che si verificava durante il ripristino di unCoordinatorLayout
utilizzando lo stato salvato di una vista che non eraCoordinatorLayout
.
- Risolto un arresto anomalo di
- Modifiche per VectorDrawableCompat:
-
- Risolto un bug per cui è stata letta la variabile sbagliata per
android:tintMode
. (Problema 201907)
- Risolto un bug per cui è stata letta la variabile sbagliata per
Revisione 23.2.0
Febbraio 2016
- Modifiche per la libreria di assistenza v4:
-
- Aggiunta di
MediaBrowserCompat
per l'assistenzaMediaBrowser
eMediaBrowserServiceCompat
per l'assistenzaMediaBrowserService
. Ciò è utile per collegare il servizio in background di un'app multimediale con i componenti dell'interfaccia utente e per integrare Android Auto e Android Wear senza richiedere il livello API 21 o versioni successive. - Il sistema ora chiama
onActivityResult()
per un elementoFragmentActivity
nidificato.
- Aggiunta di
- Modifiche per la libreria AppCompat v7:
-
- Aggiunta la funzionalità Modalità notturna al livello API 14 e successivi. Passa dai temi chiari e scuri Materiali all'ora del giorno o all'impostazione specifica dell'app.
-
- I temi diurni e notturni sono disponibili qui:
<sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
AppCompatDelegate.setDefaultNightMode()
: imposta la modalità predefinita dell'app passando una delle seguenti costanti:-
MODE_NIGHT_AUTO
MODE_NIGHT_NO
MODE_NIGHT_YES
MODE_NIGHT_FOLLOW_SYSTEM
AppCompatDelegate.setLocalNightMode()
: sostituisce l'impostazione della modalità notturna per il componente dell'app locale.AppCompatDelegate.getDefaultNightMode()
: restituisce la modalità notturna predefinita.
- I temi diurni e notturni sono disponibili qui:
- Modifiche per la libreria mediarouter v7:
-
- Ora
MediaRouteControllerDialog
applica correttamente i colori dei temi dell'app personalizzati.
- Ora
- Modifiche per la libreria di supporto per la progettazione:
-
- Aggiunto il supporto per i fogli
inferiori. Un plug-in di interazione,
BottomSheetBehavior
, consente a una vista secondaria di un elementoCoordinatorLayout
di fungere da riquadro inferiore. La classe base,BottomSheetCallback
, fornisce callback per monitorare gli eventi nel riquadro inferiore.
- Aggiunto il supporto per i fogli
inferiori. Un plug-in di interazione,
- Modifiche alla libreria di supporto di CustomTabs:
-
- Le schede personalizzate di Chrome ora consentono alle app di includere una barra inferiore con pulsanti di azione oltre al pulsante di azione superiore esistente.
CustomTabsIntent.Builder.addToolBarItem()
: aggiunge un pulsante di azione a una scheda personalizzata. Puoi utilizzare questa opzione per aggiungere più pulsanti.CustomTabsSession.setToolBarItem()
: aggiorna le immagini per gli elementi della barra degli strumenti. Questo metodo avrà esito positivo solo se gli viene fornito un ID valido e la sessione del browser è in primo piano.
- Aggiunta della libreria di supporto VectorDrawable:
-
- Corsi aggiunti:
-
VectorDrawableCompat
AnimatedVectorDrawableCompat
- Aggiunge il supporto per gli asset
VectorDrawable
alle app in esecuzione con livello API 7 o successivo. Gli assetAnimatedVectorDrawable
sono supportati anche al livello API 11 o successivo. Gli asset vettoriali possono essere notevolmente più piccoli degli asset immagine e dovrebbero contribuire a ridurre le dimensioni dell'app riducendo la quantità di asset necessari per supportare più schermi di dispositivi. - Questa libreria ora è una dipendenza della libreria AppCompat v7, che consente agli sviluppatori e a AppCompat di utilizzare facilmente disegnabili vettoriali. Per utilizzare
VectorDrawableCompat
in unImageButton
oImageView
, usa l'attributo XMLapp:srcCompat
o il metodosetImageResource()
. - Per continuare a fare riferimento agli ID attributo al livello API 20 o inferiore, aggiungi il seguente flag
appt
al tuo filebuild,gradle
: -
- Se crei con il plug-in Android per Gradle 1.5.0 o versioni precedenti, aggiungi quanto segue al file
build.gradle
: -
android { defaultConfig { // Stops the Gradle’s automatic rasterization of vectors generatedDensities = [] } // Flag that tells aapt to keep the attribute ids aaptOptions { additionalParameters "--no-version-vectors" } }
- Se crei con il plug-in Android per Gradle 2.0.0 o versioni successive, aggiungi quanto segue al file
build.gradle
: -
android { defaultConfig { vectorDrawables.useSupportLibrary = true } }
- Se crei con il plug-in Android per Gradle 1.5.0 o versioni precedenti, aggiungi quanto segue al file
- Modifiche per la libreria v17 Leanback:
-
- Sono state aggiunte nuove funzionalità a
GuidedStepFragment
, un componente che guida gli utenti attraverso una decisione o una serie di decisioni: -
- Azioni del pulsante aggiunte a
GuidedAction
: GuidedStepFragment.setButtonActions()
: consente di impostare un elenco diGuidedAction
pulsanti che l'utente può selezionare dalla visualizzazione Azioni.- I campi della descrizione sono ora modificabili:
-
GuidedAction.Builder.descriptionEditable()
: quando trasmettitrue
, imposta la descrizione dell'azione in modo che sia modificabile.GuidedAction.getEditDescription()
: restituisce la descrizione modificabile comeCharSequence
.
- Sono stati aggiunti elenchi a discesa di azioni secondarie:
-
GuidedAction.setSubActions()
: imposta un elencoGuidedAction
come menu a discesa di azioni secondarie.
- Azioni del pulsante aggiunte a
- Aggiunto il widget
GuidedDatePickerAction
per la funzionalitàDatePicker
: -
- La data viene selezionata utilizzando le colonne anno, mese e giorno e ha un intervallo personalizzabile.
GuidedDatePickerAction.Builder
: classe del builder per l'oggettoGuidedDatePickerAction
.GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat)
. Imposta il formato data desiderato passando il valoreString
di tre caratteri appropriato, ad esempio“YMD”
o“MDY”
. In alternativa, utilizza l'attributo XMLdatePickerFormat
.
- Sono state aggiunte nuove funzionalità a
- Modifiche per la libreria RecyclerView v7:
-
RecyclerView
ora dispone di una funzionalità attivabile chiamata Automeasure, che consente aRecyclerView.LayoutManager
di aggregare facilmente i contenuti o di gestire varie specifiche di misurazione fornite dall'elemento principale diRecyclerView
. Supporta tutte le funzionalità di animazione esistenti diRecyclerView
.-
- Se hai un
RecyclerView.LayoutManager
personalizzato, chiamasetAutoMeasureEnabled(true)
per iniziare a utilizzare la nuova API Automeasure. Tutti gli oggettiRecyclerView.LayoutManager
integrati attivano la misurazione automatica per impostazione predefinita. RecyclerView.LayoutManager
non ignora più alcune impostazioni diRecyclerView.LayoutParams
, comeMATCH_PARENT
nella direzione di scorrimento.Nota: la rimozione delle limitazioni potrebbe causare comportamenti imprevisti nei layout. Assicurati di specificare i parametri di layout corretti.
- Se hai un
- Durante l'aggiornamento di un
RecyclerView.ViewHolder
con informazioni sul payload,DefaultItemAnimator
ora disabilita le animazioni delle modifiche. - Ora puoi modificare la velocità di fuga di
ItemTouchHelper
per controllare la sensibilità di scorrimento. Per semplificare o rendere più difficile lo scorrimento, esegui l'override digetSwipeEscapeVelocity(float defaultValue)
e modificadefaultValue
.
Revisione 23.1.1
Novembre 2015
- Modifiche alla libreria delle visualizzazioni riciclate v7:
-
- Risolto il problema di arresto anomalo che si verificava quando si esegue un'azione di scorrimento per ignorare fornita dalla classe di utilità
ItemTouchHelper
e poi si aggiunge un elemento. (Problema 190500)
- Risolto il problema di arresto anomalo che si verificava quando si esegue un'azione di scorrimento per ignorare fornita dalla classe di utilità
- Modifiche per la libreria delle preferenze V7:
-
- Risolto un problema relativo all'utilizzo di ProGuard. (Problema 183261)
- Modifiche per la libreria di assistenza v17 Leanback:
-
- Sono stati risolti alcuni problemi interni in questa libreria.
- Modifiche alla libreria di supporto progettazione:
-
- Metodo
getHeaderView
aggiunto alla classeNavigationView
. - Risolto un problema di sfondo trasparente per un oggetto
FloatingActionButton
sui dispositivi che eseguono Android 4.0 (livello API 15) e versioni precedenti. (Problema 183315)
- Metodo
Revisione 23.1.0
Ottobre 2015
- Modifiche per la libreria di assistenza v4:
-
- Aggiunto il supporto dell'interfaccia
OnScrollChangedListener
al widgetNestedScrollView
. Consente di ricevere callback quando le posizioni dello scorrimento X o Y cambiano. - È stata aggiunta una classe
MediaButtonReceiver
per inoltrare i controlli di riproduzione ricevuti a un servizio che gestisce la classeMediaSessionCompat
. La classeMediaSessionCompat
ha un costruttore che può trovare automaticamente un ricevitore di pulsanti multimediali nel manifest. Un ricevitore di pulsanti multimediali è una parte fondamentale per gestire i controlli di riproduzione dall'hardware o dai controlli Bluetooth.
- Aggiunto il supporto dell'interfaccia
- Modifiche per la libreria appcompat v7:
-
- Aggiunti widget material design
Seekbar
eImageButton
. - Aggiornamento del widget
ImageView
per supportare la funzionalità di tinta. - Aspetto e design del widget
SwitchCompat
aggiornati.
- Aggiunti widget material design
- Modifiche per la libreria mediarouter v7:
-
- Sono state aggiunte le seguenti funzionalità al corso
MediaRouteChooserDialog
: - Mostra una pagina di caricamento durante il rilevamento dei fornitori di percorsi multimediali.
- Include un'icona del tipo di dispositivo per facilitarne l'identificazione.
- Ordina le route in base alla frequenza di utilizzo nell'app corrente.
- Supporta la modalità Orizzontale.
- Sono state aggiunte le seguenti funzionalità al corso
MediaRouteControllerDialog
: - Riconosce la trasmissione dello schermo e fornisce una descrizione appropriata.
- Supporta copertine di diversi formati e proporzioni e carica le immagini in modo asincrono.
- Consente di selezionare automaticamente il colore dei contenuti in base al colore principale dell'app.
- Regola il layout delle finestre di dialogo in base allo spazio disponibile sullo schermo sul dispositivo.
- Supporta la modalità Orizzontale.
- Sono state aggiunte le seguenti funzionalità al corso
- Modifiche alla raccolta delle tavolozze V7:
-
- È stato aggiunto il metodo
setRegion()
per supportare l'estrazione del colore da una regione specifica di un oggettoBitmap
.
- È stato aggiunto il metodo
- Modifiche alla libreria delle visualizzazioni riciclate v7:
-
- È stata aggiunta un'API di animazione migliorata alla classe
ItemAnimator
per migliorare le personalizzazioni: - La modifica delle animazioni non applica più due copie dell'oggetto
ViewHolder
, il che consente le animazioni dei contenuti degli elementi. Inoltre, l'oggettoItemAnimator
decide se riutilizzare lo stesso oggettoViewHolder
o crearne uno nuovo. - La nuova API per il record di informazioni offre alla classe
ItemAnimator
la flessibilità di raccogliere i dati nel punto corretto del ciclo di vita del layout. Queste informazioni vengono in seguito trasferite nei callback animati.
- Fornito un piano di transizione semplice per questa modifica dell'API non compatibile con le versioni precedenti:
- Se hai già esteso la classe
ItemAnimator
, puoi cambiare la classe base inSimpleItemAnimator
e il codice dovrebbe funzionare come prima. La classeSimpleItemAnimator
fornisce la vecchia API eseguendo il wrapping della nuova API. - Alcuni metodi sono stati rimossi dalla classe
ItemAnimator
. Il seguente codice non verrà più compilato:
Kotlin
recyclerView.itemAnimator.supportsChangeAnimations = false
Java
recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
Puoi sostituirlo con:
Kotlin
val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator animator?.supportsChangeAnimations = false
Java
ItemAnimator animator = recyclerView.getItemAnimator(); if (animator instanceof SimpleItemAnimator) { ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false); }
- È stata aggiunta un'API di animazione migliorata alla classe
- Modifiche per la libreria di supporto delle preferenze v7, v14 e v17:
-
- API per il controllo di
EditText
finestre di dialogo rimosse.
- API per il controllo di
- Modifiche per la libreria di assistenza v17 Leanback:
-
- È stata aggiunta una versione della classe
GuidedStepFragment
per la libreria di supporto (estendeandroid.support.v4.app.Fragment
), nonché animazioni e transizioni migliorate. - Il corso
GuidedStepFragment
è stato aggiornato in modo che possa essere posizionato sopra i contenuti esistenti. - È stata aggiunta la possibilità di annotare diversi tipi di completamenti della ricerca alla
classe
SearchFragment
. - Aggiunto il supporto della transizione sfalsata delle slide alla classe
VerticalGridFragment
.
- È stata aggiunta una versione della classe
- Modifiche alla libreria di supporto progettazione:
-
- Aggiunto il supporto per il
conteggio dei caratteri al widget
TextInputLayout
. - Aggiunto il supporto per l'agganciamento di bordi alla classe
AppBarLayout
aggiungendo la costanteSCROLL_FLAG_SNAP
. Al termine dello scorrimento, se la visualizzazione è visibile solo parzialmente, la visualizzazione viene agganciata e fatta scorrere fino al bordo più vicino. - Aggiunto il supporto per le viste personalizzate alla classe
NavigationView
tramite l'attributoapp:actionLayout
o il metodoMenuItemCompat.setActionView()
.
- Aggiunto il supporto per il
conteggio dei caratteri al widget
- Modifiche alla libreria di supporto delle schede personalizzate:
-
- Aggiunto il metodo
enableUrlBarHiding()
alla classeCustomTabsIntent
. Consente al client di personalizzare se la barra dell'URL deve essere nascosta automaticamente allo scorrimento verso il basso. - Aggiunto il metodo
setActionButton()
alla classeCustomTabsSession
. Consente al cliente di modificare l'icona di un pulsante di azione personalizzato in una scheda personalizzata già lanciata. - Sono state aggiunte le costanti
TAB_SHOWN
eTAB_HIDDEN
come nuovi eventi per il metodoonNavigationEvent
della classeCustomTabsCallback
.
- Aggiunto il metodo
Revisione 23.0.1
Settembre 2015
- Modifiche per la libreria di supporto delle preferenze v7 e v14:
-
- Sono stati aggiunti il layout di material design e i file di stile. (Problema 183376)
- Modifiche per la libreria appcompat v7:
-
- Sono stati risolti i problemi di arresto anomalo per la classe
Fragment
limitando l'utilizzo dei livelli hardware ad Android 4.1 (livello API 16) e versioni successive. (Problema 183896) - Risolto un problema per cui i pulsanti hardware non funzionavano quando un'attività aveva impostato la
classe
Toolbar
in modo che agisse comeActionBar
utilizzando il metodosetSupportActionBar()
. (Problema 183334) - È stata aggiornata la classe
AppCompatDialogFragment
in modo che non restituisca più l'erroreWindows feature must be requested before adding content
. (Problema 183186)
- Sono stati risolti i problemi di arresto anomalo per la classe
- Modifiche alla libreria di supporto progettazione:
-
- È stata corretta la classe
AppBarLayout
in modo che ora venga disegnata correttamente dopo la rotazione. (Problema 183109) - È stata corretta la
classe
TabLayout
in modo che ora si comporti correttamente quando un utente fa clic dopo uno scorrimento. (Problema 183123)
- È stata corretta la classe
- Modifiche alla libreria di supporto delle schede personalizzate:
-
- Valore di
minSdkVersion
abbassato da 16 a 15 per il supporto della versione. - È stato aggiunto un modo per generare un
CustomTabsSessionToken
da un intent.
- Valore di
Revisione 23
Agosto 2015
- Aggiunte nuove librerie di supporto:
Per un elenco completo delle modifiche relative alla Support Library, consulta il report Differenze API della Support Library.
Revisione 22.2.1
Luglio 2015
- Modifiche alla libreria di supporto progettazione:
-
- Sono stati aggiunti i metodi
hide()
eshow()
alla classeFloatingActionButton
per l'attivazione programmatica delle animazioni. - È stata aggiunta la costante
LENGTH_INDEFINITE
alla classeSnackbar
per mostrare una snackbar fino a quando non viene ignorata o viene mostrata un'altra snackbar. Sono stati anche aggiunti i metodisetActionTextColor(int)
esetActionTextColor(ColorStateList)
. - È stato aggiunto il metodo
getSelectedTabPosition()
alla classeTabLayout
per recuperare la scheda attualmente selezionata. - È stata fornita un'API completa per la classe
android.support.v7.app.NotificationCompat.MediaStyle
per il concatenamento dei metodi. - Sono stati aggiunti metodi di convenienza a
RecyclerView
per l'inserimento in gruppo di articoli.
- Sono stati aggiunti i metodi
Per un elenco completo delle modifiche relative alla Support Library, consulta il report Differenze API della Support Library.
Revisione 22.2.0
Maggio 2015
- È stata aggiunta la libreria di supporto per la progettazione:
-
- Aggiunto
TextInputLayout
per mostrare il suggerimento e il testo di erroreEditText
come etichette mobili. - È stato aggiunto
FloatingActionButton
per implementare un'azione principale nell'interfaccia come pulsante di azione mobile, in modo da supportare le dimensioni predefinite o mini. - È stato aggiunto
Snackbar
per aver fornito un feedback leggero con un'azione facoltativa in una snackbar animata. - È stato aggiunto
TabLayout
per l'implementazione di schede fisse e scorrevoli, nonché per una facile integrazione conViewPager
. - È stato aggiunto
NavigationView
per l'implementazione dei contenuti del riquadro di navigazione a scomparsa, inclusa la possibilità di gonfiare le voci di menu tramite una risorsa menu. - È stato aggiunto
CoordinatorLayout
, un layout per uso generico utilizzato per creare dipendenze tra le viste gemelle e che consente reazioni di scorrimento semplici tra i componenti tramiteCoordinatorLayout.Behavior
. Molti dei componenti della libreria di progettazione si basano sull'essere elementi secondari diCoordinatorLayout
. - È stato aggiunto
AppBarLayout
, un contenitore diToolbar
e altre visualizzazioni (comeTabLayout
) per reagire agli eventi di scorrimento scorrendo lo schermo al di fuori dello schermo, diventare visibile in reazione a uno scorrimento verso il basso o comprimere/scomprimere prima di scorrere sullo schermo. - Elemento
CollapsingToolbarLayout
aggiunto per il controllo della modalità di compressione diToolbar
. Una barra degli strumenti può comprimersi tramite il blocco dei componenti nella parte superiore dello schermo durante la compressione, l'introduzione dello scorrimento in parallasse di componenti qualiImageView
o l'aggiunta di un colore di tessuto per i contenuti quando la visualizzazione è parzialmente compressa.
- Aggiunto
- Modifiche per la libreria di supporto v4:
-
- Sono stati aggiunti i metodi
getContentChangeTypes()
esetContentChangeTypes()
e i relativi campi del tipo di modifica alla classeAccessibilityEventCompat
per la gestione degli eventi di accessibilità. - Sono stati aggiunti i metodi
getActiveQueueItemId()
,getCustomActions()
egetExtras()
con campi di stato correlati alla classePlaybackStateCompat
per ottenere azioni personalizzate dalla coda. - Sono stati aggiunti i metodi
addCustomAction()
,setActiveQueueItemId()
esetExtras()
alla classePlaybackStateCompat.Builder
per aggiungere azioni personalizzate a uno stato di riproduzione. - Sono stati aggiunti i metodi
fromCustomAction()
egetCustomAction()
alla classePlaybackStateCompat.CustomAction
per ottenere azioni personalizzate dalla coda. - Sono stati aggiunti i metodi
isAttachedToWindow()
,offsetLeftAndRight()
eoffsetTopAndBottom()
alla classeViewCompat
per lavorare con le viste. - Sono stati aggiunti i metodi
addOnPageChangeListener()
,clearOnPageChangeListeners()
eremoveOnPageChangeListener()
alla classeViewPager
per rispondere alle modifiche alle pagine.Metodo
ViewPager.setOnPageChangeListener()
obsoleto. - Aggiunto il metodo
notifySubtreeAccessibilityStateChanged()
alla classeViewParentCompat
per notificare un elemento padre della vista che lo stato di accessibilità di uno dei suoi discendenti è cambiato. - Sono stati aggiunti i metodi
translationZ()
,translationZBy()
,z()
ezBy()
alla classeViewPropertyAnimatorCompat
per l'aggiunta di animazioni.
- Sono stati aggiunti i metodi
- Modifiche per la libreria appcompat v7:
-
- È stato aggiunto il metodo
onWindowStartingSupportActionMode()
alle classiAppCompatActivity
,AppCompatCallback
eAppCompatDialog
per gestire le modalità di azione avviate dalla finestra corrente. - Sono stati aggiunti i metodi
isHandleNativeActionModesEnabled()
esetHandleNativeActionModesEnabled()
alla classeAppCompatDelegate
per gestire le modalità di azione native.
- È stato aggiunto il metodo
Per un elenco completo delle modifiche relative alla Support Library, consulta il report Differenze API della Support Library.
Revisione 22.1.0
Aprile 2015
- Modifiche per la raccolta delle annotazioni:
-
- È stata aggiunta la libreria delle annotazioni per fornire supporto per ispezioni avanzate del codice. Le annotazioni vengono aggiunte come tag di metadati che colleghi a variabili, parametri e valori di restituzione per esaminare i valori restituiti del metodo, i parametri trasmessi e le variabili e i campi locali.
- Modifiche per la libreria di supporto v4:
-
- È stata aggiunta la classe
ColorUtils
per fornire un insieme di metodi di utilità relativi ai colori. - Sono stati aggiunti i metodi
unwrap()
ewrap()
alla classeDrawableCompat
, consentendoti di utilizzaresetTint()
,setTintList()
esetTintMode()
su tutti i dispositivi con livello API 4 o superiore. - È stata aggiunta la classe
TraceCompat
per scrivere eventi di traccia nel buffer di traccia del sistema, che possono essere raccolti e visualizzati utilizzando lo strumento Systrace. - È stata aggiunta la classe
CircularIntArray
per creare strutture di dati array di numeri interi circolari. - Sono stati aggiunti i metodi
clear()
,removeFromStart()
eremoveFromEnd()
alla classeCircularArray
. Inoltre, sono stati modificati i metodi esistenti in questa classe in modo che non fossero definitivi. InputDeviceCompat
è stato aggiunto come corso helper per accedere ai dati nel corsoInputDeviceCompat
.- È stata aggiunta la classe
LayoutInflaterCompat
come classe helper per accedere ai dati nella classeLayoutInflaterCompat
e è stata aggiunta l'interfacciaLayoutInflaterFactory
. - Sono stati aggiunti metodi, classi e interfacce per supportare lo scorrimento nidificato.
- Sono state aggiunte le classi helper
NestedScrollingChildHelper
eNestedScrollingParentHelper
per l'implementazione delle viste principali e secondarie a scorrimento nidificato. - È stata aggiunta l'interfaccia
NestedScrollingChild
che deve essere implementata daView
sottoclassi. - Sono state aggiunte le interfacce
NestedScrollingParent
eScrollingView
per supportare le operazioni di scorrimento e fornire API correlate allo scorrimento. - Aggiunto il metodo
getNestedScrollAxes()
alla classeViewGroupCompat
. - Sono stati aggiunti metodi alla classe
ViewParentCompat
per supportare lo scorrimento nidificato. - È stata aggiunta la classe
NestedScrollView
per supportare lo scorrimento nidificato dell'elemento principale e secondario su entrambe le versioni di Android, nuova e precedente.
- Sono state aggiunte le classi helper
- Sono stati aggiunti metodi e costanti alla classe
MotionEventCompat
per ottenere valori dell'asse e dell'origine evento. - È stata aggiornata la classe
AccessibilityNodeInfoCompat
per aggiungere metodi per errori, invalidazione dei contenuti ed etichette. - Sono state aggiunte le seguenti classi di interpolazione per l'animazione:
FastOutLinearInInterpolator
,FastOutSlowInInterpolator
,LinearOutSlowInInterpolator
,LinearOutSlowInInterpolator
ePathInterpolatorCompat
. - È stata aggiunta la classe
Space
per creare lacune tra i componenti nei layout per uso generico. Questa classe è deprecata nella libreria del layout a griglia. - È stata aggiunta la classe
TextViewCompat
per l'accesso alle funzionalità in unTextView
. - È stato aggiunto un parametro di spostamento al metodo
onPull()
nella classeEdgeEffectCompat
.
- È stata aggiunta la classe
- Modifiche per la libreria appcompat v7:
-
- È stato aggiunto il supporto della tinta ai widget appcompat, tra cui
AppCompatAutoCompleteTextView
,AppCompatButton
,AppCompatCheckBox
,AppCompatCheckedTextView
,AppCompatEditText
,AppCompatMultiAutoCompleteTextView
,AppCompatRadioButton
,AppCompatRatingBar
,AppCompatSpinner
eAppCompatTextView
. - È stata aggiornata
AppCompatActivity
come classe base per le attività che utilizzano le funzionalità della barra delle azioni della libreria di supporto. Questa classe sostituisce il campoActionBarActivity
deprecato. - È stata aggiunta l'interfaccia
AppCompatCallback
da implementare per consentire ad AppCompat di eseguire callback. - È stata aggiunta la
classe astratta
AppCompatDelegate
come delegato che puoi utilizzare per estendere il supporto di AppCompat a qualsiasi attività. - È stata aggiunta la
classe
AppCompatDialog
come classe base per le finestre di dialogo a tema AppCompat. - Sono stati aggiunti gli stili di rotazione
AlertDialog
eAlertDialog.Builder
per fornire un elementoAlertDialog
a tema AppCompat. - È stata aggiunta la classe
Palette.Builder
per generarePalette
istanze.- È stato aggiunto il metodo
from(Bitmap)
alla classePalette
per iniziare a generare una Palette con l'istanzaPalette.Builder
restituita. - Sono stati deprecati i metodi
Palette.generate()
ePalette.generateAsync()
.
- È stato aggiunto il metodo
- Aggiunto il metodo
getAbsoluteAlignment()
alla classeGridLayout.Spec
. - Utilizzo deprecato di
app:theme
per lo stile diToolbar
. Ora puoi utilizzareandroid:theme
per le barre degli strumenti su tutti i dispositivi con livello API 7 e livelli successivi e il supportoandroid:theme
per tutti i widget sui dispositivi con livello API 11 e livelli successivi.
- È stato aggiunto il supporto della tinta ai widget appcompat, tra cui
- Modifiche per la lianback v17:
-
- Sono stati aggiunti
GuidedStepFragment
,GuidanceStylist
eGuidedActionsStylist
per supportare la creazione di flussi decisionali in più passaggi.
- Sono stati aggiunti
- Modifiche alla libreria delle visualizzazioni di riciclo v7:
-
- Sono state aggiunte
SortedList
classi per visualizzare gli elementi in un ordine elenco e fornire notifiche relative alle modifiche all'elenco. - È stata aggiunta la classe
SortedListAdapterCallback
che può associare un elenco ordinato a una classeRecyclerView.Adapter
.
- Sono state aggiunte
- Modifiche per la libreria di script di rendering V8:
-
- È stata aggiunta la classe
ScriptIntrinsicHistogram
da utilizzare come filtro a istogrammi. - È stata aggiunta la classe
ScriptIntrinsicResize
per eseguire il ridimensionamento di un'allocazione 2D.
- È stata aggiunta la classe
- Modifiche per la libreria di supporto v4:
-
- Il metodo
getDrawable()
è stato aggiornato per restituire un oggetto disegnabile per un ID risorsa, densità dello schermo e tema specifici specificati. - Aggiunto il metodo
setImportantForAccessibility()
per consentirti di indicare se una vista deve attivare eventi di accessibilità. - Aggiunto il metodo
getStatusBarBackgroundDrawable()
per poter disegnare in background nella barra di stato. - Sono stati aggiunti metodi alla classe
NotificationCompat.CarExtender.UnreadConversation
per consentire alle app di messaggistica di Android Auto di recuperare ulteriori dati di notifica. - È stato aggiunto il metodo
getProgressCircleDiameter()
per restituire il diametro di un layout circolare. - Il colore predefinito della barra di stato
DrawerLayout
è stato modificato incolorPrimaryDark
.
- Il metodo
- Modifiche per la libreria appcompat v7:
-
- Aggiunta dello stile della rotellina
Base_Widget_AppCompat_Spinner_Underlined
. - Sono stati aggiunti gli stili dei widget colorati con
Widget_AppCompat_AutoCompleteTextView
,MultiAutoCompleteTextView
,TextAppearance_AppCompat_Button
eBase_Widget_AppCompat_RatingBar
.
- Aggiunta dello stile della rotellina
- Modifiche per la lianback v17:
-
- Sono stati aggiunti i metodi
getRecycledPoolSize()
esetRecycledPoolSize()
per consentire dimensioni personalizzate per le piscine riciclate. - È stato aggiunto l'attributo
WRAP_CONTENT
all'impostazione della larghezza del layout per supportare i contenuti con wrapping per le icone dei titoli. - Definizione di
R.transition
in XML per migliorare gli aggiornamenti della transizione. - È stato attivato il supporto dei layout da destra a sinistra.
- È stato aggiunto il supporto degli eventi di riproduzione e messa in pausa dei tasti multimediali al corso
PlaybackOverlayFragment
. - Sono state aggiunte transizioni di tipo ingresso e ritorno alla
classe
BrowseFragment
e alla classeDetailsFragment
. - Aggiunto il metodo
replace()
per sostituire elementi nell'array di adattatori di un oggetto.
- Sono stati aggiunti i metodi
- Modifiche per la libreria mediarouter v7:
-
- Sono state aggiornate le icone Google Cast per utilizzare lo stile material design.
- Sono state aggiornate tutte le icone utilizzate nelle finestre di dialogo
MediaRouter
in modo che utilizzino lo stile material design.
- Modifiche alla libreria delle visualizzazioni di riciclo v7:
-
- Sono stati aggiunti i metodi
getlayoutPosition()
egetadapterPosition()
alla classeRecyclerView
. - Sono stati deprecati i metodi
classgetChildPosition()
efindViewHolderForPosition()
nella classeRecyclerView
. - Metodo
getPosition()
obsoleto nella classeRecyclerView.ViewHolder
. - Metodo
getViewPosition()
obsoleto nella classeRecyclerView.LayoutParams
.
- Sono stati aggiunti i metodi
- Modifiche per la libreria di supporto v4:
-
- Sono stati aggiunti diversi metodi
NotificationCompat.WearableExtender
per migliorare la visualizzazione dei codici a barre nelle notifiche sui dispositivi indossabili.
- Sono stati aggiunti diversi metodi
- Modifiche per la libreria di supporto v4:
-
- È stato aggiunto il corso
NotificationCompat.CarExtender
per supportare le estensioni di Android Auto alle notifiche.
- È stato aggiunto il corso
- Modifiche per la libreria appcompat v7:
-
- È stato aggiunto il costruttore
PopupMenu
per supportare nuovi menu popup. - È stato aggiunto il supporto di una descrizione dell'icona Comprimi nella classe
Toolbar
. - Widget
SearchView
aggiornato per supportare la visualizzazione dicommitIcon
. - Attributo
buttonGravity
rimosso dalla classeToolbar
.
- È stato aggiunto il costruttore
- Modifiche per la raccolta delle visualizzazioni schede versione 7:
-
- È stata aggiunta l'API
setCardBackgroundColor(ColorStateList)
per supportare la modifica del colore di sfondo diCardView
. - È stato modificato il valore
CardView
in modo da segnalare in modo più preciso il relativo valore di opacità comeTRANSLUCENT
.
- È stata aggiunta l'API
- Modifiche alla libreria recyclerview v7:
-
- Sono state aggiunte le costanti
TOUCH_SLOP_DEFAULT
eTOUCH_SLOP_PAGING
alla classeRecyclerView
per supportare le configurazioni touch slop per il paging.
- Sono state aggiunte le costanti
- Modifiche per la lianback v17:
-
- Aggiunto il supporto per generare frammenti di codice v4.
- Colore del testo secondario modificato il giorno
CardView
.
- È stata aggiunta una libreria di supporto multidex per supportare più file Dalvik Executable (DEX) per il supporto di file multi-dex precedenti ad Android 5.0.
- Modifiche per la libreria di supporto v4:
-
- Aggiunto il supporto delle transizioni
Fragment
per i dispositivi con Android 5.0 (livello API 21). Tieni presente che le transizioni non hanno alcun effetto sui dispositivi con Android 4.4 e versioni precedenti. - È stato aggiunto
DocumentFile
per facilitare la transizione daFile
durante l'utilizzo delle strutture di documenti. Tuttavia, questa classe richiede un overhead maggiore per l'elaborazione rispetto all'APIDocumentsContract
della piattaforma aggiunta in Android 4.4 (livello API 19). Dovresti quindi passare all'utilizzo diDocumentsContract
su Android 4.4 e versioni successive.
- Aggiunto il supporto delle transizioni
- Modifiche per la libreria appcompat v7:
-
- Aggiunto il supporto per le interfacce utente di material design.
- È stato aggiunto
Toolbar
, che generalizza la funzionalità diActionBar
per l'utilizzo nei layout delle app. - È stata aggiornata
ActionBarDrawerToggle
, che contiene l'animazione menu a freccia - Widget dell'interfaccia utente comuni aggiornati per consentire la colorazione tramite attributi dei temi durante l'esecuzione su dispositivi precedenti ad Android 5.0
- È stato aggiunto
SwitchCompat
, un backport del widgetSwitch
aggiunto in Android 4.0 (livello API 14).
- Nuova raccolta di visualizzazioni schede V7:
-
- È stato aggiunto il widget
CardView
, che fornisce un'implementazione compatibile con il material design per la visualizzazione degli elementi di dati.
- È stato aggiunto il widget
- Nuova libreria v7 recyclerview:
-
- È stato aggiunto il widget
RecyclerView
, che fornisce una visualizzazione elenco flessibile per fornire una finestra limitata in un set di dati di grandi dimensioni.
- È stato aggiunto il widget
- Nuova raccolta di tavolozze V7:
-
- È stata aggiunta la classe
Palette
, che consente di estrarre colori importanti da un'immagine.
- È stata aggiunta la classe
- Nuova raccolta Leanback v17:
-
- Aggiunto il supporto per la creazione di interfacce utente per la TV, tra cui
BrowseFragment
,DetailsFragment
ePlaybackOverlayFragment
. Per ulteriori informazioni sull'utilizzo di questi widget dell'interfaccia utente, consulta Creazione di app di riproduzione per la TV.
- Aggiunto il supporto per la creazione di interfacce utente per la TV, tra cui
- Modifiche per la libreria di supporto v4:
-
- È stato aggiunto il supporto esteso delle notifiche per Android Wear in
NotificationCompat.WearableExtender
, che ti consente di specificare nelle notifiche funzionalità specifiche per i dispositivi indossabili. - È stato aggiunto
NotificationCompat.Action.WearableExtender
, che consente di aggiungere azioni sulle notifiche indossabili. - È stato aggiunto
NotificationManagerCompat
, che consente di inviare notifiche che supportano correttamente le funzionalità indossabili. - È stato aggiunto
RemoteInput
, che consente a un dispositivo portatile di ricevere input vocale da una notifica visualizzata su un dispositivo indossabile. - È stata migliorata la gestione del feedback al tocco in
SwipeRefreshLayout
.
- È stato aggiunto il supporto esteso delle notifiche per Android Wear in
- Modifiche per la libreria di supporto v4:
-
- È stata aggiunta la classe
SwipeRefreshLayout
, che consente agli utenti di aggiornare i contenuti di una visualizzazione con un gesto di scorrimento verticale. - Sono stati risolti i problemi di accessibilità relativi ai riquadri di navigazione a scomparsa.
- È stata aggiunta la classe
- Modifiche per la libreria di appcompat v7:
-
- Sono stati risolti i problemi di sfondo della barra delle azioni.
- Modifiche per la libreria di supporto v4:
-
PrintHelper
è stata migliorata aggiungendo la gestione asincrona della stampa.- È stata corretta l'approssimazione della classe
DrawerLayout
del metodoaddChildrenForAccessibility()
. - Mirroring disegnabile della slide corretto in
ActionBarDrawerToggle
. - È stato risolto il problema relativo alla rimozione di un elemento da un iteratore della raccolta.
- Modifiche per la libreria mediarouter v7:
-
- È stata migliorata l'identificazione delle route grazie all'uso del nome completo del componente nell'
MediaRouteProvider.ProviderMetadata
. - Aggiornamento di
MediaRouteChooserDialog
completato per nascondere le route disabilitate.
- È stata migliorata l'identificazione delle route grazie all'uso del nome completo del componente nell'
- Modifiche alla libreria di script di rendering V8
-
- Aggiunta la propagazione degli errori per il livello di thunking di RenderScript.
- Modifiche per la libreria di supporto v4:
-
- Aggiunto il supporto per le API di archiviazione esterne con
getObbDirs()
,getExternalFilesDirs()
,getExternalCacheDirs()
egetStorageState()
. Questi metodi helper restituiscono sempre un singolo oggetto file sui dispositivi che eseguono Android 4.3 (livello API 18) e versioni precedenti. Se vengono eseguiti su Android 4.4 (livello API 19) e versioni successive, questi metodi possono restituire più oggetti file. - È stata aggiunta una classe
PrintHelper
che funziona con le API di stampa per stampare le immagini con un minimo di codice. - Aggiunto il supporto dell'interfaccia utente con trascinamento per i menu popup. Per maggiori informazioni, consulta
PopupMenuCompat
eListPopupWindowCompat
. - Supporto dell'accessibilità migliorato con l'aggiunta di un metodo
findFocus()
inAccessibilityNodeProviderCompat
e del metodogetLiveRegion()
inAccessibilityNodeInfoCompat
. - È stata aggiunta la classe helper
ScaleGestureDetectorCompat
per l'accesso ai nuovi metodi dei gesti di scalabilità. - È stato risolto il problema relativo a
ActionBarDrawerToggle
nelle lingue di visualizzazione da destra a sinistra. - Opzione
AutoScrollHelper
modificata per utilizzare gli eventi touch o per consentire il loro trasferimento ad altre viste.
- Aggiunto il supporto per le API di archiviazione esterne con
- Modifiche per la libreria mediarouter v7:
-
- Aggiunto il supporto per la coda di riproduzione dei contenuti multimediali, l'impostazione dei valori dell'intestazione HTTP e della durata della riproduzione dei contenuti multimediali.
- Sono state aggiunte azioni esplicite di inizio, recupero e fine sessione per la gestione esplicita delle sessioni di riproduzione di contenuti multimediali con il router multimediale.
- Modifiche per la libreria di supporto v4:
-
- Interfaccia utente
- È stato aggiunto
BidiFormatter
per la gestione delle stringhe di testo che combinano testo con formattazione da destra a sinistra e da sinistra a destra. - Modificato
ViewPager
per gestire meglio i casi in cui il cercapersone ha una larghezza misurata pari a zero nell'elaborazione iniziale del layout. - Sono stati modificati
DrawerLayout
eSlidingPaneLayout
in modo da non generare eccezioni per la misurazione durante la modifica del codice del progetto.
- È stato aggiunto
- Accessibilità
- È stato aggiunto
ExploreByTouchHelper
per semplificare l'implementazione dell'accessibilità per le visualizzazioni personalizzate. - Risolto il problema di
ViewPager
che compilava erroneamente gli eventi di accessibilitàTYPE_VIEW_SCROLLED
. - È stata corretta un'eccezione di puntatore null in
ViewPager
durante il completamento di un evento di accessibilità. - È stato semplificato
AccessibilityNodeInfoCompat
modificando gli inputCharSequence
inString
oggetti. - È stato deprecato un costruttore
AccessibilityRecordCompat
che utilizzava unObject
come input.
- È stato aggiunto
- Contenuti multimediali
- È stata aggiunta la classe helper
TransportMediator
per gestire il controllo del trasporto dei contenuti multimediali, ad esempio per riprodurre, mettere in pausa, saltare e altre azioni multimediali. - Aggiunta di
DisplayManagerCompat
per la gestione dell'output display su uno o più display dei dispositivi.
- È stata aggiunta la classe helper
- Altre modifiche
- È stata aggiunta una classe helper
WakefulBroadcastReceiver
per l'implementazione di un pattern comune per il rilevamento di un evento di riattivazione del dispositivo e per il trasferimento del lavoro a unService
, garantendo al contempo che il dispositivo non ritorni in modalità di sospensione prima del completamento dell'handoff. - Sono state aggiunte due nuove API,
commitContentChanged()
erollbackContentChanged()
, aAsyncTaskLoader
per facilitare la gestione degli aggiornamenti in background relativi alle modifiche ai dati che vengono successivamente annullate.
- È stata aggiunta una classe helper
- Interfaccia utente
- Nuova libreria appcompat v7:
-
- È stato aggiunto
ActionBar
per consentire l'implementazione del pattern di progettazione dell'interfaccia utente della barra delle azioni su Android 2.1 (livello API 7) e versioni successive. L'utilizzo di questo corso richiede l'implementazione dell'attività estendendo la nuova classeActionBarActivity
.
- È stato aggiunto
- Nuova libreria mediarouter v7:
-
È stata aggiunta una nuova libreria mediarouter che fornisce supporto per l'anteprima per gli sviluppatori di Google Cast. Le API Mediarouter Library consentono di controllare il routing dei canali multimediali e dei flussi dal dispositivo attuale a schermi esterni, altoparlanti e altri dispositivi di destinazione, con compatibilità con Android 2.1 (livello API 7). Consulta la libreria dei mediarouter V7 per ulteriori informazioni.
Le API della libreria mediarouter v7 introdotte nella Support Library r18 sono soggette a modifiche nelle revisioni successive della Support Library. Al momento consigliamo di utilizzare la raccolta soltanto in relazione all'anteprima per gli sviluppatori di Google Cast.
- Modifiche per la libreria di supporto v4:
-
- È stato aggiunto
DrawerLayout
per creare un riquadro a scomparsa di navigazione che può essere visualizzato dal bordo di una finestra. - Aggiunto il widget
SlidingPaneLayout
per creare visualizzazioni di riepilogo e dettagli collegate che si adattano in modo appropriato alle varie dimensioni dello schermo. - È stato aggiunto
ActionBarDrawerToggle
come modo per unire le funzioni diDrawerLayout
eActionBar
. - È stato aggiunto
ViewDragHelper
come nuovo componente comune per trascinare le viste all'interno di una vista principale. - Aggiunta di
ScrollerCompat
per fornire assistenza per la compatibilità diScroller
eOverScroller
. - È stato aggiunto
FileProvider
per consentire la condivisione di file privati tra le applicazioni. ViewPager
aggiornato per generare un'eccezione se la classePagerAdapter
associata viene modificata senza una chiamata anotifyDataSetChanged()
.- Risolto il problema relativo all'ordinamento dei disegni per
ViewPager
elementi secondari. - È stato risolto il problema di
GestureDetectorCompat
che causava l'invio di chiamateonSingleTapConfirmed(MotionEvent)
mancanti tra gli eventi di timeout del tocco e di pressione prolungata.
- È stato aggiunto
- Nuova libreria di layout griglia v7:
-
- È stato aggiunto
GridLayout
per fornire supporto per l'oggetto layoutGridLayout
. - È stato aggiunto
android.support.v7.widget.Space
, che può essere utilizzato per creare aree vuote all'interno di un oggetto layoutGridLayout
.
- È stato aggiunto
- Modifiche per la libreria di supporto v4:
-
- Comportamento di interazione migliorato per
ViewPager
. - Risolto un bug che poteva causare la selezione della pagina sbagliata da parte di
ViewPager
. - È stato corretto l'utilizzo del metodo
removeView()
durante il layout perViewPager
. - È stato risolto il problema relativo a
SearchViewCompat
a causa del quale l'uso del pulsante Indietro per ignorare non cancella il testo della ricerca. Questa correzione si applica solo ai livelli API host 14 e successivi.
- Comportamento di interazione migliorato per
- Modifiche per la libreria di supporto v4:
-
- Interfaccia utente
- Aggiunto il supporto per le classi nidificate
Fragment
. - Sono stati aggiunti miglioramenti al debug di
FragmentManager
. - Risolto il problema in
FragmentTabHost
per cui l'interazione tra frammenti e schede poteva causare una perdita dello statoListView
. - È stato risolto il problema con il suggerimento visibile all'utente in
FragmentStatePagerAdapter
. - È stata aggiunta l'interfaccia
PageTransformer
aViewPager
per consentire alle applicazioni di fornire un comportamento di transizione personalizzato per lo scorrimento. - A partire dalla release attuale, sono state aggiunte nuove funzionalità e correzioni a
TaskStackBuilder
. - È stato corretto
PagerTitleStrip
per monitorare correttamente l'elementoPagerAdapter
attualmente in uso. - Sono stati risolti i problemi di sfarfallio, posizionamento e ritaglio del testo del display con
PagerTitleStrip
. - È stato corretto
PagerTabStrip
per rispettare correttamente la spaziatura interna durante il disegno di una sottolineatura.
- Aggiunto il supporto per le classi nidificate
- Accessibilità
- È stato aggiunto il supporto dei nuovi tipi di eventi touch e gesti di accessibilità in
AccessibilityEventCompat
. - Aggiunto il supporto per le nuove API di accessibilità in
ViewCompat
. - Aggiunto il supporto del metodo
performAccessibilityAction()
aViewCompat
.
- È stato aggiunto il supporto dei nuovi tipi di eventi touch e gesti di accessibilità in
- Aggiunto il supporto dei gesti con
GestureDetectorCompat
. - Aggiunto il supporto per l'esecuzione di operazioni atomiche sui file utilizzando una nuova
classe
AtomicFile
. - Aggiunto il supporto per il set completo di metodi
make
inIntentCompat
. - Metodo
trimToSize()
aggiunto nella classe di utilitàLruCache
. - È stato aggiornato
ConnectivityManagerCompat
per ricevere NetworkInfo da una trasmissioneCONNECTIVITY_ACTION
.
- Interfaccia utente
- Modifiche per la libreria di supporto v4:
-
- Aggiunto il supporto per le funzionalità di notifica introdotte in Android 4.1 (livello API 16) con
aggiunte a
NotificationCompat
.
- Aggiunto il supporto per le funzionalità di notifica introdotte in Android 4.1 (livello API 16) con
aggiunte a
- Modifiche per la libreria di supporto v4:
-
- Supporto dell'interfaccia utente
- È stato aggiunto il supporto
PagerTabStrip
, con funzionalità avanzate oltre aPagerTitleStrip
. - Sono stati corretti vari bug per
PagerTitleStrip
ePagerTabStrip
, tra cui l'opzionesetAllCaps
, l'allineamento del titolo, i miglioramenti dell'aspetto, i vincoli di larghezza minima e i problemi di navigazione touch. - Aggiunto il supporto per i margini di pagina
ViewPager
, che aiuta la classeViewPager
a fornire supporto per il paging dei contenuti con un ampio intervallo di scorrimento orizzontale, come una mappa. - Sono stati risolti numerosi bug relativi a
ViewPager
, tra cui problemi relativi a dimensioni e modifica dei set di dati, posizionamento nelle pagine, interazione dell'utente, monitoraggio dello scorrimento e navigazione da tastiera. - Sono stati risolti molti bug per
Fragment
, tra cui la corretta gestione dionActivityResult()
quando il frammento di destinazione non esiste più, l'invio di eventi di selezione a frammenti invisibili, il miglioramento del comportamento diFragmentTransaction.replace()
e una migliore gestione dello stato per i frammenti spostati fuori dalla visualizzazione. - Aggiunto il supporto per il metodo
postOnAnimation()
inViewCompat
. - È stato aggiornato
NavUtils
per utilizzare la funzionalità di navigazione Up di Android 4.1 (livello API 16), se disponibile.
- È stato aggiunto il supporto
- Accessibilità
- Sono state aggiornate le classi di supporto dell'accessibilità, tra cui
AccessibilityNodeInfoCompat
, per seguire le correzioni apportate in Android 4.1 (livello API 16). - Aggiunto il supporto per le azioni di scorrimento per l'accessibilità in
ViewPager
.
- Sono state aggiornate le classi di supporto dell'accessibilità, tra cui
- Miglioramenti generali
- Aggiornamento di
TaskStackBuilder
in base alle modifiche dell'API in Android 4.1 (livello API 16). TaskStackBuilder
migliorato per consentirne l'utilizzo da un servizio.- Aggiunto il supporto per
EXTRA_HTML_TEXT
aShareCompat
. - Aggiornamento di
NotificationCompat.Builder
per supportare il metodosetNumber()
. - Aggiunto il supporto in
ConnectivityManagerCompat
per il metodoisActiveNetworkMetered()
.
- Aggiornamento di
- Supporto dell'interfaccia utente
- Modifiche per la libreria di supporto v4:
-
- Flag di intent corretti per
PendingIntent
oggetti generati daTaskStackBuilder
. - Sono stati rimossi gli attributi inutilizzati dai progetti della libreria di layout a griglia per garantire che la libreria possa essere creata con il livello API 7 o superiore.
- Sono stati aggiunti i file
.classpath
e.project
per il progetto della libreria layout a griglia.
- Flag di intent corretti per
- Modifiche per la libreria di supporto v4:
-
- È stato aggiunto
ShareCompat
, che fornisce classi helper per l'invio e la ricezione di contenuti per le applicazioni di condivisione sui social, inclusi nuovi metadati per attribuire i dati condivisi all'app di origine. Questa classe fornisce inoltre un'integrazione compatibile con il nuovoShareActionProvider
in Android 4.0. - Sono stati aggiunti
NavUtils
eTaskStackBuilder
per fornire assistenza per l'implementazione delle linee guida di Android Design per la navigazione. Queste aggiunte includono un modo per implementare il pulsante Su della barra delle azioni in tutte le versioni. Per un'implementazione di esempio di questo pattern, vedi l'esempio di AppNavigator in (<em><sdk></em>/samples/<em><platform></em>/AppNavigation
). - È stato aggiunto
NotificationCompat.Builder
per fornire un'implementazione di compatibilità della classe helperNotification.Builder
di Android 3.0 per la creazione di notifiche di sistema standardizzate.
- È stato aggiunto
- Modifiche per la libreria di supporto v4:
-
- Modifiche a ViewPager:
- Aggiunto supporto aggiuntivo per le visualizzazioni decorative per
ViewPager
. Le visualizzazioni decorative possono essere fornite come visualizzazioni secondarie di un pager in layout XML. - È stato aggiunto
PagerAdapter.getPageTitle()
per fornire stringhe di titolo per le pagine, che per impostazione predefinita è "senza titolo". - È stata aggiunta
PagerTitleStrip
, una barra del titolo non interattiva, che può essere aggiunta come elemento secondario di ViewPager. Gli sviluppatori possono specificare l'aspetto e il colore del testo, nonché informazioni su dimensioni del layout e gravità. - Sono stati aggiornati i metodi
PagerAdapter
per acquisire oggetti ViewGroup anziché View per evitare la trasmissione della classe nelle implementazioni dell'adattatore. - È stato aggiornato
ViewPager
per utilizzare un comportamento di scorrimento simile a quello di Avvio app. - Correzioni di bug relative all'interazione con l'interfaccia utente e all'automazione dei test.
- Aggiunto supporto aggiuntivo per le visualizzazioni decorative per
- Supporto per i frammenti:
- Metodo
setStartDeferred()
modificato insetUserVisibleHint(boolean)
. - È stato aggiunto l'inizio posticipato per le pagine fuori schermo per migliorare le prestazioni.
- Metodo
- Supporto per le API Accessibility:
- Sono stati aggiornati i metodi
AccessibilityDelegateCompat
per restituire elenchi vuoti anziché nulli. - Sono state aggiunte nuove API necessarie per gli esempi v4.
- Sono stati aggiornati i metodi
- Modifiche a ViewPager:
- Modifiche per la libreria di supporto v4:
-
- Supporto per le API Accessibility:
- Aggiunta di
AccessibilityDelegateCompat
per supportareView.AccessibilityDelegate
. - Aggiunta di
AccessibilityEventCompat
per supportareAccessibilityEvent
. - Aggiunta di
AccessibilityManagerCompat
per supportareAccessibilityManager
. - Aggiunta di
AccessibilityNodeInfoCompat
per supportareAccessibilityNodeInfo
. - Aggiunta di
AccessibilityRecordCompat
per supportareAccessibilityRecord
. - Aggiunta di
AccessibilityServiceInfoCompat
per supportareAccessibilityServiceInfo
. - Aggiunta di
ViewGroupCompat
per supportare le funzioni di accessibilità inViewGroup
. - Modifica di
ViewCompat
per supportare le funzioni di accessibilità inView
.
- Aggiunta di
- Modifiche a ViewPager:
- Aggiunto il supporto per i margini tra le pagine.
È possibile fornire un elemento
Drawable
facoltativo per riempire i margini. - Aggiunto il supporto per
EdgeEffect
. - Aggiunto il supporto della navigazione da tastiera
- Aggiunto il supporto per controllare il numero di pagine da tenere in entrambi i lati della pagina corrente.
- Fisica del tocco migliorata.
- Correzioni di bug relative al comportamento dell'interfaccia utente.
- Aggiunto il supporto per i margini tra le pagine.
È possibile fornire un elemento
- Supporto per le API Accessibility:
- Modifiche per la libreria di supporto v4:
-
- Aggiunta di
EdgeEffectCompat
per supportareEdgeEffect
. - È stato aggiunto
LocalBroadcastManager
per consentire alle applicazioni di registrare e ricevere facilmente intent all'interno di una singola applicazione senza trasmetterli a livello globale. - Aggiunto il supporto in
ViewCompat
per verificare e impostare le modalità di scorrimento orizzontale perView
su Android 2.3 e versioni successive. - Modifiche alle API Fragment:
- Sono state aggiunte nuove API per controllare la visibilità dei nuovi menu.
- Sono state aggiunte le API di animazione personalizzata.
- Sono state aggiunte API in
FragmentActivity
per conservare i dati delle istanze personalizzate non di configurazione. - Correzione di diversi bug.
- Risolto un bug
Loader
che causava problemi durante l'annullamento diAsyncTask
durante l'esecuzione su Froyo e versioni precedenti della piattaforma. Il codice di assistenza ora utilizza la propria versione diAsyncTask
per mantenere lo stesso comportamento su tutte le versioni della piattaforma.
- Aggiunta di
- Modifiche per la libreria di supporto v4:
-
- Aggiunge il supporto per
Fragment.SavedState
- Aggiunge
MotionEventCompat
per supportare le APIMotionEvent
più recenti - Aggiunge
VelocityTrackerCompat
per supportare le APIVelocityTracker
più recenti - Aggiunge
ViewConfigurationCompat
per supportare le APIViewConfiguration
più recenti - Tutte le nuove API (disponibili solo nella libreria di supporto) che consentono di creare UI con paging orizzontale, consentendo agli utenti di scorrere verso sinistra e destra tra le visualizzazioni di contenuti. I corsi a supporto di ciò includono:
ViewPager
: unaViewGroup
che gestisce il layout delle viste secondarie, tra cui l'utente può far scorrere.PagerAdapter
: un adattatore che compila il campoViewPager
con le visualizzazioni che rappresentano ogni pagina.FragmentPagerAdapter
: un'estensione diPagerAdapter
per capovolgere i frammenti.FragmentStatePagerAdapter
: un'estensione diPagerAdapter
per il passaggio da un frammento all'altro che utilizza il supporto della libreria perFragment.SavedState
.
- Aggiunge il supporto per
- Nuova libreria di supporto v13:
-
- Include
FragmentPagerAdapter
eFragmentStatePagerAdapter
per supportare il paging orizzontale.Queste API sono esattamente uguali alle API aggiunte alla libreria di supporto v4, ma si basano su altri componenti della piattaforma in Android 3.2. Utilizza questa libreria anziché la versione 4 se stai sviluppando per Android 3.2 e versioni successive (tutte le altre API nella libreria v4 sono già disponibili con il livello API 13).
- Include
- Modifiche per la libreria v4:
-
- Supporto per le animazioni con frammenti
- Correggi
Fragment.onActivityResult()
bug
Revisione 22
Marzo 2015
Revisione 21.0.3
Dicembre 2014
Revisione 21.0.2
Novembre 2014
Revisione 21.0.1
Novembre 2014
Revisione 21
Ottobre 2014
Revisione 20
Luglio 2014
Revisione 19.1.0
Marzo 2014
Revisione 19.0.1
Dicembre 2013
Revisione 19
Ottobre 2013
Revisione 18
Luglio 2013
Revisione 13
Maggio 2013
Revisione 12
Febbraio 2013
Revisione 11
Novembre 2012
Revisione 10
Agosto 2012
Revisione 9
Giugno 2012
Revisione 8
Aprile 2012
Revisione 7
Marzo 2012
Revisione 6
Dicembre 2011
Nota: i riferimenti per le API della libreria di assistenza sono ora disponibili con i riferimenti al framework, ad esempio android.support.v4.app
.
Revisione 5
Dicembre 2011
Revisione 4
Ottobre 2011
Revisione 3
Luglio 2011
Revisione 2
Maggio 2011
Revisione 1
Marzo 2011
Versione iniziale con la libreria v4.