Guida alle funzionalità della Raccolta di supporto

Nota: con il rilascio di Android 9.0 (livello API 28), è disponibile una nuova versione della libreria di supporto chiamata AndroidX, che fa parte di Jetpack. La libreria AndroidX contiene la libreria di supporto esistente e include anche i componenti Jetpack più recenti.

Puoi continuare a utilizzare la libreria di assistenza. Gli artefatti storici (quelli con versione 27 e precedenti e pacchettizzati come android.support.*) rimarranno disponibili in Google Maven. Tuttavia, lo sviluppo di tutte le nuove librerie avverrà nella libreria AndroidX.

Ti consigliamo di utilizzare le librerie AndroidX in tutti i nuovi progetti. Dovresti anche prendere in considerazione la migrazione dei progetti esistenti ad AndroidX.

Le librerie di assistenza forniscono un'ampia gamma di classi per la creazione di app, dai componenti fondamentali delle app ai widget dell'interfaccia utente, alla gestione dei contenuti multimediali e ai componenti delle app per TV. Molte classi sono implementazioni compatibili con le versioni precedenti, ma alcune sono nuove funzionalità a sé stanti.

Questo documento fornisce una panoramica delle importanti categorie di funzionalità disponibili nella libreria di assistenza e delle classi specifiche che dovresti conoscere quando crei la tua app.

Per informazioni su come aggiungere il codice della libreria di supporto al tuo progetto di sviluppo di app, consulta Configurazione della libreria di supporto. Per informazioni su come includere pacchetti di librerie di supporto specifici nel tuo progetto, consulta Pacchetti della libreria di supporto.

Componenti dell'app

Queste classi di Support Library forniscono implementazioni compatibili con le versioni precedenti di importanti funzionalità principali della piattaforma. In genere, queste implementazioni estendono le versioni precedenti della classe per gestire nuovi metodi e funzionalità aggiunti nelle release più recenti della piattaforma. Alcune di queste classi sono implementazioni complete statiche delle API framework.

  • Attività
    • ActivityCompat: include l'implementazione compatibile con le versioni precedenti di funzionalità chiave di attività recenti, come le autorizzazioni di runtime e le transizioni delle animazioni.
    • FragmentActivity: fornisce un'implementazione compatibile con le versioni precedenti per le attività che utilizzano le versioni della libreria di supporto delle API Fragment e Loader.
    • AppCompatActivity: fornisce il supporto per i temi di colore Material, la colorazione dei widget e la barra dell'app ai dispositivi precedenti. L'utilizzo di questo corso richiede l'uso di Theme.AppCompat temi per una presentazione visiva coerente.
  • Fragment - Fornisce un'implementazione autonoma della classe Fragment del framework. Questa classe deve essere utilizzata con FragmentActivity.
  • ContextCompat: fornisce supporto per le funzionalità introdotte nelle release più recenti della classe Context, tra cui supporto per le autorizzazioni, accesso ai file e informazioni sui colori.
  • IntentCompat: fornisce supporto per le funzionalità introdotte nelle release più recenti della classe Intent, inclusi i metodi per selezionare e avviare attività specifiche.
  • Loader - Fornisce un'implementazione statica della classe Loader del framework e è la classe base per le classi di assistenza AsyncTaskLoader e CursorLoader.
  • Preference - Questa classe e le sue sottoclassi forniscono le implementazioni dell'interfaccia utente delle impostazioni dell'app in modo compatibile con le versioni precedenti.
  • ContentResolverCompat: fornisce supporto per le funzionalità introdotte nelle release più recenti della classe ContentResolver, in particolare per il metodo query(), con supporto per l'annullamento di una query in corso.

Interfaccia utente

Queste classi di librerie di supporto forniscono implementazioni di widget e comportamenti chiave dell'interfaccia utente e ti aiutano a creare interfacce di app più moderne sui dispositivi precedenti. Alcuni di questi widget sono disponibili solo tramite la libreria di supporto.

Container di layout per uso generico

Queste classi di assistenza forniscono container dell'interfaccia utente che possono essere adattati a diversi casi d'uso di progettazione.

  • RecyclerView: crea un layout per la visualizzazione di lunghi elenchi, utilizzando una strategia per evitare un consumo elevato di memoria. Questa classe consente di creare una visualizzazione limitata della finestra in un set di dati più grande, evitando così di consumare grandi quantità di memoria quando si visualizza l'elenco. Per maggiori informazioni sull'utilizzo di RecyclerView, consulta la guida Recycler View.
  • ViewPager: offre un layout che consente all'utente di scorrere a sinistra e a destra le pagine di dati.
  • GridLayout - Fornisce un layout con i relativi elementi figlio in una griglia rettangolare, che supporta intervalli arbitrari di celle contigue e una distribuzione dello spazio flessibile. Questa classe fornisce una versione compatibile con le versioni precedenti della classe GridLayout, introdotta in Android 4.0 (livello API 14).
  • PercentFrameLayout e PercentRelativeLayout: fornisci layout che supportano dimensioni e margini basati sulla percentuale per le visualizzazioni e i contenuti secondari.

Nota: i corsi ViewPager, RecyclerView, PercentFrameLayout e PercentRelativeLayout sono disponibili solo nelle librerie di assistenza.

Container di layout per scopi speciali

Queste classi di supporto forniscono implementazioni compatibili di pattern di layout specifici, come visualizzazioni dei riquadri che possono essere estratte dal bordo dello schermo, pannelli scorrevoli ed elenchi nidificati all'interno di elenchi.

  • DrawerLayout: crea un layout che consente di estrarre le visualizzazioni a scomparsa interattive dal bordo della finestra di visualizzazione.
  • SlidingPaneLayout: fornisce un layout orizzontale a più riquadri da utilizzare al livello superiore dell'interfaccia utente di un'app per creare layout che si adattano senza problemi a schermi di varie dimensioni, espandendosi su schermi più grandi e comprimendosi per adattarsi a schermi più piccoli.
  • NestedScrollView: un layout a scorrimento che supporta la nidificazione di altre visualizzazioni a scorrimento e consente di creare elenchi contenenti elementi contenenti altri elenchi secondari. Questi elenchi nidificati possono contenere elementi che scorrono orizzontalmente o verticalmente, separatamente dall'elenco principale.
  • SwipeRefreshLayout: fornisce un layout per supportare l'aggiornamento dei dati di elenchi o altri layout con un gesto di scorrimento del dito.

Visualizzazioni, finestre di dialogo e widget

Le librerie di supporto forniscono una serie di classi per visualizzare contenuti e fornire elementi di interazione utente in un layout.

  • CardView - Una classe personalizzata della libreria di supporto per la creazione di schede display in stile Material Design. Questa classe si basa su FrameLayout con angoli arrotondati e un'ombra.
  • AppCompatDialogFragment: fornisce finestre di dialogo con stili coerenti estendendo DialogFragment e utilizzando AppCompatDialog.
  • NotificationCompat: offre supporto per stili di notifica più recenti in modo compatibile con le versioni precedenti.
  • SearchView. Fornisce all'utente una classe per inserire una query di ricerca e inviare una richiesta a un provider di ricerca, che è principalmente destinata all'utilizzo nella barra di un'app.

Material Design

Le librerie di supporto forniscono una serie di classi per l'implementazione dei suggerimenti per l'interfaccia utente di Material Design.

  • CoordinatorLayout: fornisce un container di primo livello per i layout che incorporano componenti e comportamento di Material Design. Questa classe può essere utilizzata anche come contenitore per interazioni specifiche con una o più viste secondarie.
  • AppBarLayout: fornisce un'implementazione di molte delle funzionalità di scorrimento del concetto della barra dell'app di Material Design.
  • FloatingActionButton: crea un pulsante mobile per mostrare un tipo speciale di azione promossa. Questo elemento dell'interfaccia utente di Material Design è rappresentato da un'icona circolare sopra l'interfaccia utente dell'app. Per ulteriori informazioni, consulta la sezione Aggiungere un pulsante di azione mobile.
  • DrawerLayout: crea un riquadro di navigazione a scomparsa, ovvero un riquadro UI che mostra il menu di navigazione principale dell'app. Viene visualizzata quando l'utente fa scorrere un dito dal bordo sinistro dello schermo o tocca l'icona del riquadro a scomparsa nella barra delle app. Per ulteriori informazioni, consulta la sezione Creare un riquadro di navigazione a scomparsa.
  • TabLayout: fornisce un layout per la visualizzazione di pagine a schede. Questo widget è progettato per essere utilizzato con la classe ViewPager.
  • Snackbar - Fornisce un widget per la visualizzazione di feedback leggeri su un'operazione mediante il popup della snackbar.

Grafica

Il pacchetto android.support.graphics.drawable fornisce supporto per i disegnabili vettoriali. Utilizzando elementi di disegno vettoriali, puoi sostituire più risorse PNG con una singola grafica vettoriale, definita in XML.

VectorDrawableCompat fornisce supporto per disegnabili vettoriali a livello API 9 e versioni successive. AnimatedVectorDrawableCompat fornisce supporto per disegni vettoriali animati a livello API 11 e versioni successive.

Accessibilità

Il pacchetto android.support.v4.view.accessibility fornisce classi di compatibilità per l'implementazione delle funzioni di accessibilità introdotte a livello API 14 e versioni successive, che consentono ai servizi di accessibilità di osservare e identificare l'interazione degli utenti con gli elementi visualizzati sullo schermo.

  • ExploreByTouchHelper: fornisce supporto per l'accessibilità in una vista personalizzata che rappresenta una raccolta di elementi logici simili a una visualizzazione.

Riproduzione di contenuti multimediali

Android Support Library fornisce un backport della funzionalità router multimediale per i dispositivi che eseguono versioni della piattaforma precedenti ad Android 4.1 (livello API 16). Queste classi consentono di controllare la riproduzione di contenuti multimediali sui dispositivi Android connessi:

  • MediaRouter: consente alle applicazioni di controllare il routing dei canali multimediali e degli stream dal dispositivo attuale agli altoparlanti esterni e ai dispositivi di destinazione.
  • MediaControllerCompat: consente a un'app di interagire con una sessione multimediale in corso. Le app possono fornire pulsanti di controllo dei contenuti multimediali tramite questo meccanismo e inviare altri comandi di riproduzione alla sessione.
  • MediaSessionCompat: fornisce un'interfaccia per il controllo remoto per la riproduzione di contenuti multimediali, consentendo l'interazione con controller multimediali, tasti del volume, pulsanti multimediali e controlli di trasporto in altre app o su dispositivi separati.

App TV

L'SDK Android fornisce librerie per supportare fattori di forma come schermi di grandi dimensioni e i controller associati. Un'app può dipendere dalla libreria di supporto appropriata per fornire funzionalità su un'ampia gamma di versioni della piattaforma e può fornire contenuti su schermi esterni, altoparlanti e altri dispositivi di destinazione.

App Wear

L'SDK Android fornisce librerie per il supporto degli smartwatch. Queste librerie forniscono funzionalità alle app disponibili per gli utenti ogni volta che indossano un orologio.

Utilità

Android Support Library offre una serie di funzionalità non integrate nel framework. Queste librerie offrono una serie di utilità utilizzabili dalle app.