Come utilizzare i frammenti nelle tue app Android per un'interfaccia utente potente e dinamica

Autore: John Stephens
Data Della Creazione: 28 Gennaio 2021
Data Di Aggiornamento: 19 Maggio 2024
Anonim
Come utilizzare i frammenti nelle tue app Android per un'interfaccia utente potente e dinamica - Applicazioni
Come utilizzare i frammenti nelle tue app Android per un'interfaccia utente potente e dinamica - Applicazioni

Contenuto


Nota: questo articolo presuppone che tu abbia familiarità con le basi dello sviluppo Android e Java. Dovresti già essere in grado di creare layout di base e utilizzare viste, al clic e findViewById. Se afferri questi concetti, sei pronto per imparare a usare i frammenti!

I frammenti sono una potente funzionalità della buona interfaccia utente Android che ti consente di avvicinarti al design delle app in modo modulare. Queste sono viste distinte che possono contenere interi layout e fornite con il proprio codice Java di accompagnamento. Abbattendo l'interfaccia utente in questo modo, è possibile creare layout logici più facili da comprendere per gli utenti. Puoi fornire loro ulteriori informazioni e controlli senza che debbano abbandonare l'attività.

Vedi anche: Frammenti senza problemi: Utilizzo del componente Architettura di navigazione di Android

I frammenti ti offrono molte più opzioni nella progettazione della tua app e possono migliorare sostanzialmente l'esperienza dell'utente


Inoltre, i frammenti si comportano come classi e oggetti in quanto puoi averne più casi dello stesso frammento. Ciò significa che puoi riutilizzare lo stesso layout più e più volte senza dover riscrivere il codice o persino mostrare due versioni diverse affiancate.

In breve, mentre questo è ancora un altro cosa da imparare quando si tratta della lista di cose da fare apparentemente infinita coinvolta con le app Android, è qualcosa che può offrirti molte più opzioni nel design della tua app e migliorare sostanzialmente l'esperienza dell'utente, rendendolo più che degno del tempo speso a familiarizzare .

Come costruire il tuo primo frammento Android

Quindi, cosa potremmo fare con frammenti che non avrebbero senso in nessun altro modo?

Forse abbiamo un elenco di file - forse questa è una galleria di immagini - e vogliamo mostrare una descrizione e dare all'utente la possibilità di cancellare o condividere. Quel genere di cose. Potremmo inviarli a una nuova pagina "Descrizione" ogni volta utilizzando un'attività separata, ma se si utilizzano frammenti possiamo tenerli su un'unica pagina che sarà meno stonante.


Apri Android Studio e crea un elenco di immagini casuali in activity_main.xml. Sto usando le foto di Dragon Ball Super perché sono un secchione ed è quello che ho in giro sul mio PC ...

Ora creeremo il nostro primo frammento.

Per fare questo, hai intenzione di andare a File> Nuovo> Frammento. MainActivity.java deve essere selezionato a sinistra quando lo fai, e per ora sceglierai un frammento "vuoto". Sarai quindi in grado di scegliere un nome perché sei la nuova creazione, che chiameremo "Descrizione". Deseleziona le due caselle sottostanti: non ne abbiamo bisogno in questo momento.

Una volta fatto questo, scoprirai che ora non hai solo un nuovo file java chiamato Description.java, ma anche un nuovo file di layout chiamato fragment_description.xml - proprio come se avessi creato una nuova classe! Ciò significa che inserirai il codice associato al tuo nuovo frammento nel suo file java separato.

Aggiunta di layout, viste e codice

La buona notizia è che è molto facile per noi aggiungere visualizzazioni e layout quando utilizziamo i frammenti. Lo faremo esattamente come faremmo normalmente modificando fragment_timer.xml.

Usiamo di nuovo un layout lineare e questa volta aggiungiamo alcuni controlli e testo descrittivo. Puoi attaccare qualsiasi cosa qui per ora.

Quindi ora la domanda successiva è: come si fa a mostrare questo in realtà nella tua app?

Puoi farlo aggiungendo il frammento all'attività, proprio come faresti con qualsiasi altra vista. Quindi, vai su activity_main.xml e aggiungi la vista in modo che occupi una parte dello schermo, forse in fondo.

Se vuoi farlo come ho fatto io, ho usato un layout lineare verticale e ho dato a tutte le immagini un peso di 1 e il frammento di un peso di 2.

Noterai che l'anteprima non ti mostra il frammento reale, ma solo un segnaposto. Allo stesso modo, nota che ho dovuto includere il nome del frammento nell'XML, in modo che Android sappia dove trovarlo. È inoltre necessario un ID per ogni frammento.

Il codice

Come discusso, il codice di cui abbiamo bisogno per usare i frammenti andrà nel suo file java. In questo caso, quello è il file Description.java.

Se dai un'occhiata a questa pagina, vedrai che c'è un costruttore (proprio come in qualsiasi classe che crea un oggetto) e un metodo chiamato onCreateView. Quel metodo è dove l'xml viene utilizzato per gonfiare quella vista ed è anche l'equivalente del solito onCreate metodo in un'attività standard.

Per la maggior parte, puoi fare le cose come faresti normalmente qui. findViewById funziona e puoi usarlo per cambiare testo ecc. ma dovrai ottenere il riferimento in modo leggermente diverso. Cambia la riga che legge:

return inflater.inflate (R.layout.fragment_description, container, false);

A:

Visualizza v = inflater.inflate (R.layout.fragment_description, container, false);

E poi usa:

v.findViewByID.

Ora puoi accedere alle tue visualizzazioni come faresti normalmente:

public View onCreateView (gonfiatore LayoutInflater, contenitore ViewGroup, pacchetto salvatoInstanceState) {View v = inflater.inflate (R.layout.fragment_description, container, false); Pulsante okButton = v.findViewById (R.id.ok) ;; Button shareButton = v.findViewById (R.id.Condividere); okButton.setOnClickListener (new View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "OK!", Toast.LENGTH_LONG ).spettacolo(); }}); shareButton.setOnClickListener (new View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "Condivisione ...", Toast.LENGTH_LONG ).spettacolo(); }}); ritorno v; }}

Usa i frammenti con istanze multiple

Puoi vedere come è molto più semplice creare un'interfaccia utente e un codice ottimizzati quando utilizziamo i frammenti. Invece di usare layout all'interno di layout e poi destreggiarsi tra molti clic in un unico file Java. Inoltre, questo approccio "modulare" ti consentirebbe di utilizzare questa vista in tutte le attività e persino nei menu e in altre posizioni dinamiche.

Ma la parte davvero interessante è il fatto che è possibile avere più istanze di questo stesso frammento tutte esistenti contemporaneamente.

Per fare questo è semplice: basta aggiungere più di una vista e gonfiare con lo stesso codice preciso.

Ora spero che tu possa iniziare a vedere un po 'della potenza dell'uso dei frammenti: immagina di avere una vista di riciclaggio (una lista a scorrimento) di immagini, ognuna con i dettagli e i controlli appena sotto. Non sarebbe necessario creare un layout completamente nuovo ogni volta e potresti nascondere le viste fino a quando l'utente non fa clic sull'immagine!

Inoltre, puoi anche generare nuovi frammenti a livello di codice. Tutto ciò di cui hai bisogno è da qualche parte affinché il frammento vada nel tuo layout - come un layout di frame (che chiamerò fragmentTarget) e quindi è possibile effettuare le seguenti operazioni:

Frammento aggiuntoFragment = new Description (); FragmentTransactionaction = getSupportFragmentManager (). BeginTransaction (); transaction.replace (R.id.fragmentTarget, aggiuntoFragment); transaction.addToBackStack (null); transaction.commit ();

Assicurati di importare le classi necessarie: ti verrà richiesto ogni volta che provi a utilizzare i frammenti nel tuo codice. Assicurati di scegliere l'opzione in alto che dice "v4".

Essere in grado di aggiungere frammenti a livello di codice è importante perché significa che potremmo generare un elenco dinamico di immagini (che abbiamo scaricato, che si trovano in una cartella specifica ecc.) E quindi far apparire immediatamente i dettagli per noi.

Quindi, in questo nuovo esempio, il secondo frammento è stato aggiunto a livello di codice.

Infine, potresti ritrovarti a voler cambiare l'aspetto dei tuoi frammenti a seconda di dove si trovano. La buona notizia è che puoi farlo facilmente passando un ID come un bundle quando crei il frammento e quindi estraendo quel valore dall'altra parte.

In MainActivity.java utilizzare:

Bundle bundle = new Bundle (); bundle.putInt ("ID", 1); addedFragment.setArguments (fascio);

E poi in Description.java aggiungi:

int eyeD = 0; Bundle bundle = this.getArguments (); if (bundle! = null) {eyeD = bundle.getInt ("ID", 0); } switch (eyeD) {caso 1: ...

Quindi, ad esempio, puoi far sì che la tua app mostri note diverse per ogni immagine.

Commenti di chiusura

È così che usi i frammenti. Spero che tu capisca le basi e questo post ti abbia dato abbastanza comprensione da poter andare avanti e capire il resto. Ancora più importante, spero che ti abbia mostrato alcuni dei possibili usi dei frammenti e il potenziale che offrono per un design delle app più intelligente.

Se vuoi vedere un altro esempio di frammenti in azione, assicurati di dare un'occhiata al mio recente post sulla creazione di un launcher personalizzato!

Sviluppo Android:

  • Come creare un'app VR per Android in soli 7 minuti
  • Crea la tua azione per l'Assistente Google
  • Root Android: tutto ciò che devi sapere!
  • Anatomia di un'app: un'introduzione ai cicli di vita delle attività
  • Android Jetpack: cosa significano gli annunci recenti per la libreria di supporto di Android?

Nonotante la loro reputazione, ci ono molte ragioni legittime per le app torrent. Alcuni motivi legali per utilizzare i torrent includono la condiviione generale di file, IO di Linux e molte altre co...

Trovare i migliori laptop Tohiba non è coì lungo e faticoo come avviene con altri produttori. Ciò è in parte dovuto alla riorganizzazione di Tohiba, dal momento che è ucito da...

Consigliamo