Com utilitzar fragments a les aplicacions d’Android per a una interfície d’usuari potent i dinàmica

Autora: John Stephens
Data De La Creació: 28 Gener 2021
Data D’Actualització: 19 Ser Possible 2024
Anonim
Com utilitzar fragments a les aplicacions d’Android per a una interfície d’usuari potent i dinàmica - Aplicacions
Com utilitzar fragments a les aplicacions d’Android per a una interfície d’usuari potent i dinàmica - Aplicacions

Content


Nota: aquest article suposa que coneixeu els fonaments bàsics del desenvolupament d’Android i Java. Ja hauríeu de ser capaços de crear dissenys bàsics i utilitzar vistes, onClick i findViewByID. Si coneixeu aquests conceptes, esteu preparats per aprendre a utilitzar fragments.

Els fragments són una potent característica d’una bona interfície d'interès Android que us permet abordar el disseny d'aplicacions de manera modular. Es tracta de vistes diferents que poden contenir dissenys sencers i que inclouen el propi codi Java acompanyant. Si trenqueu la vostra interfície d'interès, us podreu crear dissenys més lògics que els usuaris puguin entendre més fàcilment. Podeu proporcionar-los informació addicional i controls sense que hagueu d'abandonar l'activitat.

Vegeu també: Fragments sense molèsties: Utilitzant el component d'Arquitectura de navegació d'Android


Els fragments us ofereixen considerablement més opcions en el disseny de l’aplicació i poden millorar substancialment l’experiència de l’usuari

A més, és que els fragments actuen com a classes i objectes en què podeu tenir diversos casos del mateix fragment. Això vol dir que podeu tornar a utilitzar el mateix disseny una vegada i una altra sense haver de reescriure codi, o fins i tot mostrar dues versions diferents una al costat de l’altra.

En resum, mentre això encara ho és un altre cosa que cal aprendre quan es tracta de la llista aparentment interminable de les aplicacions per a Android, és una cosa que pot proporcionar-vos considerablement més opcions en el disseny de l’aplicació i millorar substancialment l’experiència de l’usuari, cosa que val més que val la pena el temps dedicat a familiaritzar-vos. .

Com crear el teu primer fragment d’Android

Aleshores, què podríem fer amb fragments que no tinguessin sentit de cap altra manera?


Potser tenim una llista de fitxers –potser es tracta d’una galeria d’imatges– i volem mostrar-ne una descripció i donar a l’usuari l’opció de suprimir o compartir. Aquest tipus de coses. Podríem enviar-les a una nova pàgina de "descripció" cada vegada mitjançant una activitat separada, però si utilitzeu fragments, podem mantenir-los a la pàgina que serà menys complicada.

Obriu Android Studio i creeu una llista d’imatges aleatòries a activitat_main.xml. Estic fent fotos de Bola de drac Super perquè sóc un nerd i és el que tinc al meu ordinador ...

Ara crearem el nostre primer fragment.

Per fer-ho, us dirigireu a Fitxer> Nou> Fragment. MainActivity.java ha de seleccionar-se a l’esquerra quan feu això i, de moment, escollireu un fragment “en blanc”. Aleshores, podreu triar un nom per a la vostra nova creació, que denominarem "Descripció". Desplegueu les dues caselles que hi ha a sota, no ho necessitem ara mateix.

Un cop fet això, ara trobaràs no només un nou fitxer java anomenat Description.java, sinó també un nou fitxer de disseny anomenat fragment_description.xml, com si haguessis creat una nova classe. Això vol dir que col·locareu el codi que acompanya el fragment nou al fitxer java propi.

Afegit dissenys, visualitzacions i codi

La bona notícia és que ens és molt fàcil afegir visualitzacions i un disseny quan fem servir fragments. Ho farem tal com ho faríem normalment editant el fragment_timer.xml.

Tornem a utilitzar una disposició lineal i aquesta vegada afegim alguns controls i text descriptiu. Podeu enganxar qualsevol cosa per ara.

Ara, la següent pregunta és: com es pot aparèixer a la vostra aplicació?

Podeu fer-ho afegint el fragment a l’activitat, tal com faríeu qualsevol altra vista. Així, dirigiu-vos a Activity_main.xml i afegiu-ne la vista perquè es faci una part de la pantalla, potser a la part inferior.

Si voleu fer-ho de la manera que vaig fer, he utilitzat un esquema lineal vertical i he donat a totes les imatges un pes d’1 i al fragment un pes de 2.

Notareu que la previsualització no us mostra el fragment real, tan sols un marcador de lloc. Igualment, heu de notar que havia d’incloure el nom del fragment a l’XML, per tal que Android sàpiga on trobar-lo. També necessiteu un identificador per a cada fragment.

El codi

Tal com s'ha comentat, el codi que necessitem utilitzar fragments anirà al seu propi fitxer java. En aquest cas, aquest és el fitxer Description.java.

Si comproveu aquesta pàgina, veureu que hi ha un constructor (igual que en qualsevol classe que crea un objecte) i un mètode anomenat onCreateView. Aquest mètode és el lloc on s'utilitza el xml per inflar aquesta vista i és també l'equivalent al que és habitual onCreate mètode en una activitat estàndard.

En la seva majoria, podeu fer les coses com faríeu normalment aquí. findViewByID funciona i podeu utilitzar-lo per canviar el text, etc., però haureu d’obtenir la referència una mica diferent. Canvieu la línia que diu:

tornar inflater.inflate (R.layout).fragment_descripció, contenidor, fals);

A:

Veure v = inflater.inflate (R.layout).fragment_descripció, contenidor, fals);

I després utilitzeu:

v.findViewByID.

Ara podeu accedir a les vostres visualitzacions com normalment:

public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View v = inflater.inflate (R.layout).fragment_descripció, contenidor, fals); Botó okButton = v.findViewById (R.id.D'acord) ;; Compartir botó shareButton = v.findViewById (R.id.Compartir); okButton.setOnClickListener (nou View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "OK!", torrades.LENGTH_LONG ).espectacle(); }}); shareButton.setOnClickListener (nou View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "Compartir ...", Torrades.LENGTH_LONG ).espectacle(); }}); tornar v; }}

Utilitzeu fragments amb instàncies múltiples

Podeu veure com és molt més fàcil crear una interfície d'usuari i un codi racionalitzats quan utilitzem fragments. En lloc d'utilitzar dissenys dins dels dissenys i després fer malabarismes amb un munt de clics tots dins d'un sol fitxer Java. El que és més és que aquest enfocament "modular" et permetria utilitzar aquesta vista a través d'activitats i fins i tot en menús i altres ubicacions dinàmiques.

Però la part realment interessant és que podeu tenir diverses instàncies d’aquest mateix fragment totes existents alhora.

Per fer-ho és senzill: només cal afegir més d’una vista i inflar amb el mateix codi.

Ara esperem que pugueu començar a veure una mica del poder d’utilitzar fragments: imagineu-vos que teniu una Vista de Reciclador (una llista de desplaçament) d’imatges, cadascuna amb els detalls i els controls que hi ha a sota. No caldrà crear un disseny completament nou i podeu ocultar les visualitzacions fins que l'usuari faci clic a la imatge.

El que és més és que també podeu generar fragments nous de manera programàtica. Tot el que necessiteu és en algun lloc perquè el fragment tingui lloc en la vostra disposició, com ara un disseny de fotograma (que anomenaré fragmentTarget) i, a continuació, podeu fer el següent:

Fragment afegitFragment = nova Descripció (); FragmentTransaction = transacció getSupportFragmentManager (). BeginTransaction (); transacció.replace (R.id.fragmentTarget, afegitFragment); transaction.addToBackStack (nul); transaction.commit ();

Assegureu-vos que importeu les classes necessàries; se us demanarà una sol·licitud sempre que intenteu utilitzar fragments del vostre codi. Només heu d'assegurar-vos que trieu l'opció principal que diu "v4".

Poder afegir fragments programàticament és important perquè vol dir que podríem generar una llista dinàmica d’imatges (que hem descarregat, que es troben en una carpeta específica, etc.) i que després ens apareguin els detalls.

Així doncs, en aquest nou exemple, el segon fragment s’ha afegit de manera programàtica.

Finalment, és possible que es vulgui canviar l’aspecte dels vostres fragments en funció d’on es trobin. La bona notícia és que podeu fer-ho fàcilment passant un ID com a paquet quan creeu el fragment i extreureu aquest valor a l'altre extrem.

A MainActivity.java utilitzeu:

Paquet de paquet = nou paquet (); bundle.putInt ("ID", 1); afegitFragment.setArguments (paquet);

A continuació, a afegir Descripció.java:

int eyeD = 0; Paquet de paquets = this.getArguments (); if (bundle! = null) {eyeD = bundle.getInt ("ID", 0); } commutador (eyeD) {cas 1: ...

Aleshores, per exemple, podeu aconseguir que l'aplicació mostri notes diferents per a cada imatge.

Comentaris de cloenda

Així és com feu servir fragments. Esperem que enteneu els fonaments bàsics i que aquesta publicació us hagi donat prou una comprensió que podeu avançar i descobrir la resta. Més important encara, espero que us hagi demostrat alguns dels possibles usos dels fragments i el potencial que ofereixen per a un disseny d’aplicacions més intel·ligent.

Si voleu veure un altre exemple de fragments en acció, assegureu-vos de veure la meva publicació recent sobre la creació d'un llançador personalitzat.

Desenvolupament d'Android:

  • Com es pot crear una aplicació VR per a Android en només 7 minuts
  • Creeu la vostra pròpia acció per a Google Assistant
  • Arrel d’Android: tot el que necessiteu saber!
  • Anatomia d’una aplicació: una introducció als cicles de vida de l’activitat
  • Android Jetpack: què signifiquen els anuncis recents per a la biblioteca d'assistència d'Android?

Una de le èrie de joc mé popular de Microoft é la franquícia de cotxe Forza. Ara, la companyia età expandint la èrie a plataforme Android i iO. Microoft ha anunciat ofici...

Le dade ón ara l’actiu mé valuó de la Terra. Le gran empree ho deitgen, i molte feine lucrative hi giren. Per unir-e a la revolució de le dade, tot comença amb la formació...

Noves Publicacions