Archivio delle revisioni della libreria di assistenza

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

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() e FragmentActivity.getSupportMediaController() sono stati rimossi. Utilizza i nuovi metodi statici MediaControllerCompat.setMediaController() e MediaControllerCompat.getMediaController().
  • BottomNavigationView ora chiama onNavigationItemReselected() quando è selezionato un elemento già selezionato, anziché chiamare onNavigationItemSelected().
  • 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) e someMethod(TextView) che ricevono il risultato di una chiamata a findViewById().
    • 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 esempio Activity.findViewById()) dovrà essere aggiornato.

Nuove API

  • FragmentManager e Fragment hanno un metodo isStateSaved() 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 evento onClick() 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 come android: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 sia FlingAnimation possono animare un valore in virgola mobile senza richiedere l'associazione di View o Object.

    Per ulteriori informazioni, consulta le pagine di anteprima relative all'animazione primaverile e all'animazione a scorrimento.

  • Supporto dei caratteri in XML:
    • ResourcesCompat.getFont consente di caricare risorse carattere, incluso il codice XML della famiglia di caratteri, che possono essere utilizzate con TextView.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: e android: .
  • 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.
  • Raccolta di compatibilità delle emoji:
    • EmojiCompat può elaborare un determinato CharSequence e aggiungere EmojiSpans.
    • 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 in TextView.
  • Controlli di riproduzione rilassati con supporto della ricerca:
    • Nuovo elemento PlaybackTransportRowPresenter per il rendering dei controlli di riproduzione con SeekBar.
    • Nuovo PlaybackTransportControlGlue che funziona con PlaybackTransportRowPresenter e supporta la ricerca.
    • Nuova classe base PlaybackSeekDataProvider per l'app per fornire miniature di ricerca a PlaybackTransportControlGlue.
  • Preferenze di Data Store:
    • PreferenceDataStore ora ti consente di implementare le tue preferenze di archiviazione, impostate con nuovi metodi in Preference e PreferenceManager.

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 di View (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 stato FragmentManager. L'esecuzione di nuove transazioni non è sicura e ora FragmentManager 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 metodo getLatLong(), che non accetta argomenti e restituisce double[].
mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence) è deprecato. Utilizza invece il nuovo metodo setErrorMessage(int, CharSequence), che riceve un codice di errore e una descrizione facoltativa.
EXTRA_SUGGESTION_KEYWORDS è deprecato. Utilizza invece la funzionalità di ricerca di MediaBrowserCompat.
v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount() è stato rinominato LinearLayoutManager.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() e CustomTabsService.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() e MediaBrowserServiceCompat.onSearch() per i dettagli.
È stato aggiunto il supporto delle modalità di riproduzione casuale e ripetizione. Consulta il riferimento MediaSessionCompat.setRepeatMode() e setShuffleModeEnabled() per i dettagli.

Problemi risolti

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 un WearableExtender

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() e Fragment.startPostponedEnterTransition(). Questa API è simile alle API Activity.postponeEnterTransition() e Activity.startPostponedEnterTransition() utilizzate con le transizioni delle attività.

Problemi risolti

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 widget RecyclerView interni quanti elementi preparare prima di essere fatti scorrere sullo schermo. Richiama LinearLayoutManager.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 chiamando LinearLayoutManager.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() e FragmentActivity.getSupportMediaController() sono stati deprecati. Utilizza i nuovi metodi statici MediaControllerCompat.setMediaController() e MediaControllerCompat.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

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 chiama requestPermission() quando dovrebbe chiamare releasePermission().
  • 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 elementi RecyclerView 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.

Revisione 25.0.1

(Novembre 2016)

Problemi risolti

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ù denominato fromMediaSession().
  • L'utente android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object) è stato rimosso. Gli utilizzi devono essere sostituiti con il metodo più appropriato MediaSessionCompat.QueueItem#fromQueueItem.
  • L'utente android.support.v7.widget.Space è stato rimosso. Gli utilizzi devono essere sostituiti con android.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à di android.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 e DecoratedMediaCustomViewStyle, 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:

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:

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() e View.performAccessibilityAction().
support-core-utils
Fornisce una serie di classi di utilità, come AsyncTaskLoader e PermissionChecker.
support-core-ui
Implementa una serie di componenti relativi all'interfaccia utente, come ViewPager, NestedScrollView e ExploreByTouchHelper.
support-media-compat
Esegue il backport di parti del framework media, tra cui MediaBrowser e MediaSession.
support-fragment
Esegue il backup del framework frammento. Questo modulo ha dipendenze su support-compat, support-core-utils, support-core-ui e support-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

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 con KeyEvent
    • android.support.v4.view.MotionEventCompat: utilizza MotionEvent
    • android.support.v4.view.ViewCompat: utilizza View
    • android.support.v4.view.ViewConfigurationCompat: utilizza ViewConfiguration
  • AccessibilityServiceInfoCompat.getDescription() è stato deprecato a favore di AccessibilityServiceInfoCompat.loadDescription(), che restituisce una descrizione localizzata correttamente.
  • Non devi creare un'istanza diretta della classe ActivityCompat. Il metodo getReferrer(Activity) non statico verrà reso statico in una release futura.
  • CoordinatorLayout.Behavior.isDirty() è stato deprecato e non viene più chiamato da CoordinatorLayout. Tutte le implementazioni, nonché qualsiasi chiamata a questo metodo, devono essere rimosse.
  • MediaSessionCompat.obtain() è stato deprecato e sostituito con il nome più appropriato fromMediaSession().
  • MediaSessionCompat.QueueItem.obtain() è stato deprecato e sostituito con il metodo con nome più appropriato fromQueueItem().
  • Diverse classi astratte sono state ritirate e sostituite con interfacce che riflettono più da vicino i loro equivalenti framework.
  • CustomTabsSession.setToolbarItem() è stato deprecato e sostituito dal setSecondaryToolbarViews() 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 quando setRefreshing(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 di SavedState 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:

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() e getImportance() aggiunti
  • MediaSessionCompat ora rispecchia la funzionalità di MediaSession 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
Modifiche per la Design Support Library:
Modifiche per la libreria Leanback v17:
  • È stato aggiunto OnboardingFragment per fornire il flusso di benvenuto e configurazione alla prima esecuzione
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

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:
Modifiche per la Design Support Library:
Modifiche alla Libreria di disegni vettoriali:

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.
Modifiche per la libreria di app v7:
Modifiche per la libreria mediarouter v7:
Modifiche per la libreria Preferenza v7:
Modifiche alla libreria v7 recyclerview:
Modifiche per la Design Support Library:

Revisione 23.2.1

Marzo 2016

Modifiche per la libreria di assistenza v4:
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)
Modifiche per la libreria delle visualizzazioni schede versione 7:
Modifiche alla libreria v7 recyclerview:
Modifiche per la libreria mediarouter v7:
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.
Modifiche per la Design Support Library:
Modifiche per VectorDrawableCompat:
  • Risolto un bug per cui è stata letta la variabile sbagliata per android:tintMode. (Problema 201907)

Revisione 23.2.0

Febbraio 2016

Modifiche per la libreria di assistenza v4:
  • Aggiunta di MediaBrowserCompat per l'assistenza MediaBrowser e MediaBrowserServiceCompat per l'assistenza MediaBrowserService. 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 elemento FragmentActivity nidificato.
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.
Modifiche per la libreria mediarouter v7:
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 elemento CoordinatorLayout di fungere da riquadro inferiore. La classe base, BottomSheetCallback, fornisce callback per monitorare gli eventi nel riquadro inferiore.
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 asset AnimatedVectorDrawable 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 un ImageButton o ImageView, usa l'attributo XML app:srcCompat o il metodo setImageResource().
  • Per continuare a fare riferimento agli ID attributo al livello API 20 o inferiore, aggiungi il seguente flag appt al tuo file build,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
        }
      }
      
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 di GuidedAction pulsanti che l'utente può selezionare dalla visualizzazione Azioni.
    • I campi della descrizione sono ora modificabili:
      • GuidedAction.Builder.descriptionEditable(): quando trasmetti true, imposta la descrizione dell'azione in modo che sia modificabile.
      • GuidedAction.getEditDescription(): restituisce la descrizione modificabile come CharSequence.
    • Sono stati aggiunti elenchi a discesa di azioni secondarie:
      • GuidedAction.setSubActions(): imposta un elenco GuidedAction come menu a discesa di azioni secondarie.
  • 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'oggetto GuidedDatePickerAction.
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat). Imposta il formato data desiderato passando il valore String di tre caratteri appropriato, ad esempio “YMD” o “MDY”. In alternativa, utilizza l'attributo XML datePickerFormat.
Modifiche per la libreria RecyclerView v7:
  • RecyclerView ora dispone di una funzionalità attivabile chiamata Automeasure, che consente a RecyclerView.LayoutManager di aggregare facilmente i contenuti o di gestire varie specifiche di misurazione fornite dall'elemento principale di RecyclerView. Supporta tutte le funzionalità di animazione esistenti di RecyclerView.
    • Se hai un RecyclerView.LayoutManager personalizzato, chiama setAutoMeasureEnabled(true) per iniziare a utilizzare la nuova API Automeasure. Tutti gli oggetti RecyclerView.LayoutManager integrati attivano la misurazione automatica per impostazione predefinita.
    • RecyclerView.LayoutManager non ignora più alcune impostazioni di RecyclerView.LayoutParams, come MATCH_PARENT nella direzione di scorrimento.

      Nota: la rimozione delle limitazioni potrebbe causare comportamenti imprevisti nei layout. Assicurati di specificare i parametri di layout corretti.

  • 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 di getSwipeEscapeVelocity(float defaultValue) e modifica defaultValue.

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)
Modifiche per la libreria delle preferenze V7:
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 classe NavigationView.
  • 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)

Revisione 23.1.0

Ottobre 2015

Modifiche per la libreria di assistenza v4:
  • Aggiunto il supporto dell'interfaccia OnScrollChangedListener al widget NestedScrollView. 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 classe MediaSessionCompat. La classe MediaSessionCompat 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.
Modifiche per la libreria appcompat v7:
  • Aggiunti widget material design Seekbar e ImageButton.
  • Aggiornamento del widget ImageView per supportare la funzionalità di tinta.
  • Aspetto e design del widget SwitchCompat aggiornati.
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.
Modifiche alla raccolta delle tavolozze V7:
  • È stato aggiunto il metodo setRegion() per supportare l'estrazione del colore da una regione specifica di un oggetto Bitmap.
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'oggetto ItemAnimator decide se riutilizzare lo stesso oggetto ViewHolder 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 in SimpleItemAnimator e il codice dovrebbe funzionare come prima. La classe SimpleItemAnimator 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);
      }
      
Modifiche per la libreria di supporto delle preferenze v7, v14 e v17:
  • API per il controllo di EditText finestre di dialogo rimosse.
Modifiche per la libreria di assistenza v17 Leanback:
  • È stata aggiunta una versione della classe GuidedStepFragment per la libreria di supporto (estende android.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.
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 costante SCROLL_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'attributo app:actionLayout o il metodo MenuItemCompat.setActionView().
Modifiche alla libreria di supporto delle schede personalizzate:
  • Aggiunto il metodo enableUrlBarHiding() alla classe CustomTabsIntent. Consente al client di personalizzare se la barra dell'URL deve essere nascosta automaticamente allo scorrimento verso il basso.
  • Aggiunto il metodo setActionButton() alla classe CustomTabsSession. 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 e TAB_HIDDEN come nuovi eventi per il metodo onNavigationEvent della classe CustomTabsCallback.

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 come ActionBar utilizzando il metodo setSupportActionBar(). (Problema 183334)
  • È stata aggiornata la classe AppCompatDialogFragment in modo che non restituisca più l'errore Windows feature must be requested before adding content. (Problema 183186)
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)
Modifiche alla libreria di supporto delle schede personalizzate:

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() e show() alla classe FloatingActionButton per l'attivazione programmatica delle animazioni.
  • È stata aggiunta la costante LENGTH_INDEFINITE alla classe Snackbar per mostrare una snackbar fino a quando non viene ignorata o viene mostrata un'altra snackbar. Sono stati anche aggiunti i metodi setActionTextColor(int) e setActionTextColor(ColorStateList).
  • È stato aggiunto il metodo getSelectedTabPosition() alla classe TabLayout 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.

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 errore EditText 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 con ViewPager.
  • È 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 tramite CoordinatorLayout.Behavior. Molti dei componenti della libreria di progettazione si basano sull'essere elementi secondari di CoordinatorLayout.
  • È stato aggiunto AppBarLayout, un contenitore di Toolbar e altre visualizzazioni (come TabLayout) 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 di Toolbar. 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 quali ImageView o l'aggiunta di un colore di tessuto per i contenuti quando la visualizzazione è parzialmente compressa.
Modifiche per la libreria di supporto v4:
Modifiche per la libreria appcompat v7:

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:
Modifiche per la libreria appcompat v7:
Modifiche per la lianback v17:
Modifiche alla libreria delle visualizzazioni di riciclo v7:
Modifiche per la libreria di script di rendering V8:

Revisione 22

Marzo 2015

Modifiche per la libreria di supporto v4:
Modifiche per la libreria appcompat v7:
Modifiche per la lianback v17:
  • Sono stati aggiunti i metodi getRecycledPoolSize() e setRecycledPoolSize() 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 classe DetailsFragment.
  • Aggiunto il metodo replace() per sostituire elementi nell'array di adattatori di un oggetto.
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:

Revisione 21.0.3

Dicembre 2014

Modifiche per la libreria di supporto v4:

Revisione 21.0.2

Novembre 2014

Modifiche per la libreria di supporto v4:
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 di commitIcon.
  • Attributo buttonGravity rimosso dalla classe Toolbar.
Modifiche per la raccolta delle visualizzazioni schede versione 7:
Modifiche alla libreria recyclerview v7:
Modifiche per la lianback v17:
  • Aggiunto il supporto per generare frammenti di codice v4.
  • Colore del testo secondario modificato il giorno CardView.

Revisione 21.0.1

Novembre 2014

È 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.

Revisione 21

Ottobre 2014

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 da File durante l'utilizzo delle strutture di documenti. Tuttavia, questa classe richiede un overhead maggiore per l'elaborazione rispetto all'API DocumentsContract della piattaforma aggiunta in Android 4.4 (livello API 19). Dovresti quindi passare all'utilizzo di DocumentsContract su Android 4.4 e versioni successive.
Modifiche per la libreria appcompat v7:
  • Aggiunto il supporto per le interfacce utente di material design.
  • È stato aggiunto Toolbar, che generalizza la funzionalità di ActionBar 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 widget Switch 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.
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.
Nuova raccolta di tavolozze V7:
  • È stata aggiunta la classe Palette, che consente di estrarre colori importanti da un'immagine.
Nuova raccolta Leanback v17:

Revisione 20

Luglio 2014

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.

Revisione 19.1.0

Marzo 2014

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.
Modifiche per la libreria di appcompat v7:
  • Sono stati risolti i problemi di sfondo della barra delle azioni.

Revisione 19.0.1

Dicembre 2013

Modifiche per la libreria di supporto v4:
Modifiche per la libreria mediarouter v7:
Modifiche alla libreria di script di rendering V8
  • Aggiunta la propagazione degli errori per il livello di thunking di RenderScript.

Revisione 19

Ottobre 2013

Modifiche per la libreria di supporto v4:
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.

Revisione 18

Luglio 2013

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 e SlidingPaneLayout in modo da non generare eccezioni per la misurazione durante la modifica del codice del progetto.
  • Accessibilità
  • 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.
  • 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 un Service, garantendo al contempo che il dispositivo non ritorni in modalità di sospensione prima del completamento dell'handoff.
    • Sono state aggiunte due nuove API, commitContentChanged() e rollbackContentChanged(), a AsyncTaskLoader per facilitare la gestione degli aggiornamenti in background relativi alle modifiche ai dati che vengono successivamente annullate.
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 classe ActionBarActivity.
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.

Revisione 13

Maggio 2013

Modifiche per la libreria di supporto v4:
Nuova libreria di layout griglia v7:
  • È stato aggiunto GridLayout per fornire supporto per l'oggetto layout GridLayout.
  • È stato aggiunto android.support.v7.widget.Space, che può essere utilizzato per creare aree vuote all'interno di un oggetto layout GridLayout.

Revisione 12

Febbraio 2013

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 per ViewPager.
  • È 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.

Revisione 11

Novembre 2012

Modifiche per la libreria di supporto v4:

Revisione 10

Agosto 2012

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.

Revisione 9

Giugno 2012

Modifiche per la libreria di supporto v4:
  • Supporto dell'interfaccia utente
    • È stato aggiunto il supporto PagerTabStrip, con funzionalità avanzate oltre a PagerTitleStrip.
    • Sono stati corretti vari bug per PagerTitleStrip e PagerTabStrip, tra cui l'opzione setAllCaps, 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 classe ViewPager 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 di onActivityResult() quando il frammento di destinazione non esiste più, l'invio di eventi di selezione a frammenti invisibili, il miglioramento del comportamento di FragmentTransaction.replace() e una migliore gestione dello stato per i frammenti spostati fuori dalla visualizzazione.
    • Aggiunto il supporto per il metodo postOnAnimation() in ViewCompat.
    • È stato aggiornato NavUtils per utilizzare la funzionalità di navigazione Up di Android 4.1 (livello API 16), se disponibile.
  • 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.
  • Miglioramenti generali

Revisione 8

Aprile 2012

Modifiche per la libreria di supporto v4:
  • Flag di intent corretti per PendingIntent oggetti generati da TaskStackBuilder.
  • 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.

Revisione 7

Marzo 2012

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 nuovo ShareActionProvider in Android 4.0.
  • Sono stati aggiunti NavUtils e TaskStackBuilder 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 helper Notification.Builder di Android 3.0 per la creazione di notifiche di sistema standardizzate.

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.

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.
  • Supporto per i frammenti:
    • Metodo setStartDeferred() modificato in setUserVisibleHint(boolean).
    • È stato aggiunto l'inizio posticipato per le pagine fuori schermo per migliorare le prestazioni.
  • 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.

Revisione 5

Dicembre 2011

Modifiche per la libreria di supporto v4:

Revisione 4

Ottobre 2011

Modifiche per la libreria di supporto v4:
  • Aggiunta di EdgeEffectCompat per supportare EdgeEffect.
  • È 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 per View 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 di AsyncTask durante l'esecuzione su Froyo e versioni precedenti della piattaforma. Il codice di assistenza ora utilizza la propria versione di AsyncTask per mantenere lo stesso comportamento su tutte le versioni della piattaforma.

Revisione 3

Luglio 2011

Modifiche per la libreria di supporto v4:
  • Aggiunge il supporto per Fragment.SavedState
  • Aggiunge MotionEventCompat per supportare le API MotionEvent più recenti
  • Aggiunge VelocityTrackerCompat per supportare le API VelocityTracker più recenti
  • Aggiunge ViewConfigurationCompat per supportare le API ViewConfiguration 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: una ViewGroup che gestisce il layout delle viste secondarie, tra cui l'utente può far scorrere.
    • PagerAdapter: un adattatore che compila il campo ViewPager con le visualizzazioni che rappresentano ogni pagina.
    • FragmentPagerAdapter: un'estensione di PagerAdapter per capovolgere i frammenti.
    • FragmentStatePagerAdapter: un'estensione di PagerAdapter per il passaggio da un frammento all'altro che utilizza il supporto della libreria per Fragment.SavedState.
Nuova libreria di supporto v13:
  • Include FragmentPagerAdapter e FragmentStatePagerAdapter 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).

Revisione 2

Maggio 2011

Modifiche per la libreria v4:

Revisione 1

Marzo 2011

Versione iniziale con la libreria v4.