Cómo usar fragmentos en tus aplicaciones de Android para una interfaz de usuario potente y dinámica

Autor: John Stephens
Fecha De Creación: 28 Enero 2021
Fecha De Actualización: 19 Mayo 2024
Anonim
Cómo usar fragmentos en tus aplicaciones de Android para una interfaz de usuario potente y dinámica - Aplicaciones
Cómo usar fragmentos en tus aplicaciones de Android para una interfaz de usuario potente y dinámica - Aplicaciones

Contenido


Nota: Este artículo asume que está familiarizado con los conceptos básicos del desarrollo de Android y Java. Ya deberías poder crear diseños básicos y usar vistas, al hacer clic y findViewByID. Si comprende esos conceptos, ¡está listo para aprender a usar fragmentos!

Los fragmentos son una característica poderosa de una buena interfaz de usuario de Android que le permite abordar el diseño de aplicaciones de manera modular. Estas son vistas distintas que pueden contener diseños completos y que vienen con su propio código Java que lo acompaña. Al dividir su IU de esta manera, puede crear diseños más lógicos que sean más fáciles de entender para sus usuarios. Puede proporcionarles información y controles adicionales sin que tengan que abandonar la actividad.

Ver también: fragmentos sin complicaciones: Uso del componente de arquitectura de navegación de Android


Los fragmentos le otorgan considerablemente más opciones en el diseño de su aplicación y pueden mejorar sustancialmente la experiencia del usuario

Lo que es más, es que los fragmentos actúan como clases y objetos en los que puedes tener múltiples instancias del mismo fragmento Eso significa que puede reutilizar el mismo diseño una y otra vez sin tener que volver a escribir el código, o incluso mostrar dos versiones diferentes una al lado de la otra.

En resumen, mientras esto es todavía otro Lo que hay que aprender cuando se trata de la lista de tareas aparentemente interminable relacionada con las aplicaciones de Android, es algo que puede otorgarle considerablemente más opciones en el diseño de su aplicación y mejorar sustancialmente la experiencia del usuario, lo que hace que valga la pena el tiempo dedicado a familiarizarse .

Cómo construir tu primer fragmento de Android

Entonces, ¿qué podríamos hacer con fragmentos que no tendrían sentido de otra manera?


Tal vez tenemos una lista de archivos, tal vez esta es una galería de imágenes, y queremos mostrar una descripción y darle al usuario la opción de eliminar o compartir. Ese tipo de cosas. Podríamos enviarlos a una nueva página de "Descripción" cada vez mediante el uso de una actividad separada, pero si usa fragmentos podemos mantenerlos en la página que será menos irritante.

Abra Android Studio y cree una lista de imágenes aleatorias en activity_main.xml. Estoy usando fotos de Dragon Ball Super porque soy un nerd y eso es lo que tengo en mi PC ...

Ahora vamos a crear nuestro primer fragmento.

Para hacer esto, vas a ir a Archivo> Nuevo> Fragmento. MainActivity.java debe seleccionarse a la izquierda cuando haga esto, y por ahora estará eligiendo un fragmento "en blanco". A continuación, podrá elegir un nombre para la nueva creación, que llamaremos "Descripción". Desmarca las dos casillas debajo, no necesitamos eso ahora.

Una vez hecho esto, descubrirá que ahora no solo tiene un nuevo archivo java llamado Descripción.java, sino también un nuevo archivo de diseño llamado fragment_description.xml, ¡como si hubiera creado una nueva clase! Esto significa que colocará el código que acompaña a su nuevo fragmento en su propio archivo java separado.

Agregar diseños, vistas y código

La buena noticia es que es muy fácil para nosotros agregar vistas y un diseño cuando usamos fragmentos. Haremos esto como lo haríamos normalmente editando fragment_timer.xml.

Usemos nuevamente un diseño lineal y esta vez agreguemos algunos controles y texto descriptivo. Puedes pegar cualquier cosa aquí por ahora.

Entonces, la siguiente pregunta es: ¿cómo haces que esto realmente aparezca en tu aplicación?

Puede hacer esto agregando el fragmento a la actividad, tal como lo haría con cualquier otra vista. Entonces, dirígete a activity_main.xml y agrega la vista para que ocupe una parte de la pantalla, tal vez en la parte inferior.

Si desea hacerlo de la manera que lo hice, utilicé un diseño lineal vertical y le di a todas las imágenes un peso de 1 y el fragmento un peso de 2.

Notarás que la vista previa no te muestra el fragmento real, solo un marcador de posición. Del mismo modo, tenga en cuenta que he tenido que incluir el nombre del fragmento en el XML, para que Android sepa dónde encontrarlo. También necesita una identificación para cada fragmento.

El código

Como se discutió, el código que necesitamos para usar fragmentos irá en su propio archivo java. En este caso, ese es el archivo Descripción.java.

Si revisa esta página, verá que hay un constructor (como en cualquier clase que crea un objeto) y un método llamado onCreateView. Ese método es donde se usa el xml para inflar esa vista y también es el equivalente de su habitual onCreate método en una actividad estándar.

En su mayor parte, puede hacer las cosas como lo haría normalmente aquí. findViewByID funciona y puede usar esto para cambiar el texto, etc. pero necesitará obtener la referencia de manera ligeramente diferente. Cambia la línea que dice:

return inflater.inflate (R.layout.fragmento_descripción, contenedor, falso);

A:

Ver v = inflater.inflate (R.layout.fragmento_descripción, contenedor, falso);

Y luego usa:

v.findViewByID.

Ahora puede acceder a sus vistas como lo haría normalmente:

Public view onCreateView (LayoutInflater inflador, ViewGroup container, Bundle savedInstanceState) {View v = inflater.inflate (R.layout.fragmento_descripción, contenedor, falso); Botón okButton = v.findViewById (R.id.Okay) ;; Botón shareButton = v.findViewById (R.id.Compartir); okButton.setOnClickListener (nueva View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "OK!", Brindis.LARGO_ LARGO ).mostrar(); }}); shareButton.setOnClickListener (nueva View.OnClickListener () {public void onClick (View v) {Toast.makeText(getActivity (), "Compartir ...", Brindis.LARGO_ LARGO ).mostrar(); }}); volver v; }}

Usa fragmentos con instancias múltiples

Puede ver cómo es mucho más fácil crear una IU y un código optimizados cuando usamos fragmentos. En lugar de usar diseños dentro de diseños y luego hacer malabarismos con muchos clics, todo dentro de un solo archivo Java. Además, este enfoque "modular" le permitiría utilizar esta vista en todas las actividades e incluso en menús y otras ubicaciones dinámicas.

Pero la parte realmente genial es el hecho de que puede tener múltiples instancias de este mismo fragmento, todas existentes al mismo tiempo.

Hacer esto es simple: simplemente agrega más de una vista e infla con el mismo código preciso.

Ahora, con suerte, puede comenzar a ver algo del poder de usar fragmentos: imagine tener una Vista de reciclador (una lista de desplazamiento) de imágenes, cada una con los detalles y controles justo debajo. ¡No sería necesario crear un diseño completamente nuevo cada vez y podría ocultar las vistas hasta que el usuario haga clic en la imagen!

Además, también puede generar nuevos fragmentos mediante programación. Todo lo que necesita es un lugar para que el fragmento vaya en su diseño, como un diseño de marco (al que llamaré fragmentTarget) y luego puede hacer lo siguiente:

Fragmento agregado Fragmento = nueva Descripción (); Transacción de FragmentTransaction = getSupportFragmentManager (). BeginTransaction (); transacción.replace (R.id.fragmentTarget, agregado Fragmento); transaction.addToBackStack (nulo); transaction.commit ();

Asegúrese de importar las clases necesarias: se le solicitará cada vez que intente utilizar fragmentos en su código. Solo asegúrese de elegir la opción superior que dice "v4".

Poder agregar fragmentos mediante programación es importante porque significa que podríamos generar una lista dinámica de imágenes (que hemos descargado, que se encuentran en una carpeta específica, etc.) y luego tener los detalles emergentes para nosotros de inmediato.

Entonces, en este nuevo ejemplo, el segundo fragmento se ha agregado mediante programación.

Finalmente, es posible que desee cambiar el aspecto de sus fragmentos dependiendo de dónde se encuentren. La buena noticia es que puede hacerlo fácilmente pasando una ID como un paquete cuando cree el fragmento y luego extraiga ese valor en el otro extremo.

En el uso MainActivity.java:

Bundle bundle = new Bundle (); bundle.putInt ("ID", 1); AddedFragment.setArguments (paquete);

Y luego en la Descripción.java agregue:

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

Luego, podría, por ejemplo, hacer que su aplicación muestre notas diferentes para cada imagen.

Comentarios finales

Así es como usas fragmentos. Espero que comprenda los conceptos básicos y esta publicación le haya dado suficiente comprensión para que pueda seguir adelante y descubrir el resto. Más importante aún, espero que le haya mostrado algunos de los posibles usos de los fragmentos y el potencial que ofrecen para un diseño de aplicaciones más inteligente.

Si quieres ver otro ejemplo de fragmentos en acción, ¡asegúrate de revisar mi publicación reciente sobre cómo crear un lanzador personalizado!

Desarrollo de Android:

  • Cómo crear una aplicación de realidad virtual para Android en solo 7 minutos
  • Crea tu propia Acción para el Asistente de Google
  • Rootear Android: ¡Todo lo que necesitas saber!
  • Anatomía de una aplicación: una introducción a los ciclos de vida de la actividad
  • Android Jetpack: ¿Qué significan los anuncios recientes para la Biblioteca de soporte de Android?

Poco depué de que e anunciara la erie Galaxy 10, recibimo la noticia de que amung permitiría a lo cliente reaignar el botón Bixby en u teléfono inignia. Deafortunadamente para aque...

Nuetra búqueda del trato perfecto ha arrojado alguna grande oferta en paquete que cambian de carrera eta emana. i te lo perdite, aquí hay tre de lo mejore....

Lee Hoy