No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

ViewGroup y View: Diferencias básicas

6/20
Recursos

¿Cómo se manejan las vistas en Android?

En el desarrollo de Android, las vistas son esenciales para crear interfaces de usuario efectivas. Las vistas se definen mediante archivos XML, los cuales proporcionan una representación estructurada de cómo se verá una aplicación en pantalla. Aunque Android Studio ofrece una vista visual atractiva de estas interfaces, bajo la superficie, todo se reduce a este lenguaje de marcado.

¿Qué son las vistas y los grupos de vistas?

  • Vista (View): Es un elemento individual que se mostrará en la pantalla. Estos elementos suelen cerrarse en la misma línea en que se definen, un concepto conocido como "inland elements". Ejemplos incluidos en la mayoría de las aplicaciones son TextView y EditText.

  • Grupo de vistas (ViewGroup): Sirve para contener y organizar varias vistas. Su papel principal es agrupar elementos relacionados, permitiendo que cualquier cambio aplicado al grupo afecte a todos sus elementos hijos. Este comportamiento se observa claramente con el atributo gravity que alineará los elementos de acuerdo con su configuración dentro de un LinearLayout.

¿Cómo funciona el atributo gravity en Android?

El atributo gravity permite controlar la alineación de los elementos dentro de un grupo de vistas en Android. Puedes usar esta herramienta para elegir hacia dónde deseas alinearlos, ya sea a la izquierda, centro o derecha de la pantalla. Algunas configuraciones y sus efectos son:

  • start: Alínea los elementos al lado izquierdo de la pantalla.
  • center: Sitúa los elementos en el centro.
  • end: Mueve los elementos al lado derecho.

El atributo gravity no se limita solo a alineaciones simples. Puedes combinar valores para alinear elementos tanto horizontal como verticalmente usando el carácter |. Por ejemplo, bottom|end posicionaría los elementos al final y parte baja de la pantalla.

¿Qué tipo de efectos especiales pueden tener los grupos de vistas?

Android facilita el uso de efectos y animaciones en los grupos de vistas gracias a su diseño flexible. No sólo permiten la agrupación lógica de vistas, sino que también se pueden usar para implementar transiciones estéticas, mejorando la experiencia del usuario con efectos visuales atractivos. Estos efectos pueden incluir animaciones de entrada y salida, transiciones suaves entre estados de vista, y más, sin impactar directamente el rendimiento de la aplicación.

En resumen, entender el funcionamiento subyacente de las vistas en Android es crucial para crear interfaces de usuario eficientes y agradables. La manipulación adecuada de estos elementos garantiza una aplicación robusta y atractiva, mejorando así la experiencia del usuario final. ¡Sigue explorando y experimentando para dominar el desarrollo Android!

Aportes 39

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

En reasumen:

  • View: es un elemento que se va a mostrar por pantalla así como tal.
    • TextView
    • ImageView
    • EditText
  • ViewGroup: es un elemento que sirve para agrupar elementos. Nota: cuando tenemos un grupo de elementos dentro de un ViewGroup, los cambios que hagamos sobre este afectaran los elementos dentro de el.
    Ejemplo:
    <LinearLayout android:gravity="start"
    	<TextView />
    	<ImageView />
    	<EditText />
    </LinearLayout>
    
    Si cambiamos el atributo gravity="center", todos los elementos se moverán al centro de la pantalla.

Para los que tengan problemas actualmente(hoy 12.feb 2021)
Simplemente cambien la segunda linea:

<androidx.constraintlayout.widget.ConstraintLayout

Por:

<androidx.appcompat.widget.LinearLayoutCompat 

Y solucionado.

tal vez sea algo por la version de android studio, pero a mi no me aparece los botones para cambiar entre diseño y text en la parte de abajo del editor, sin embargo en la parte superior hay 3 botones que resuelven este problema,

deberian actualizar este video , el IDE ha cambiado bastante

tremendo instructor! se nota que sabe lo que dice, no tartamudea, cero nervios, palabras correctas!

Latima que el la clase esté desactualizada, en estas plataformas no se puede dejar cursos o clases mucho tiempo, la tecnología es algo que cambia todos los días y dejar cursos con más de un año es fatal.

El plazo para actualizarlos debe ser menor.

El curso esta desactuializado a como funciona hoy en dia
Este curso ya esta muy antiguo, acabo de descargar android studio y está muy diferente, deberían actulizarlo, febrero 2024.

Para los que como a mi tengan una version mas reciente de Android les comparto lo que hice:

<
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http.........(Esta URL la indica el mismo Android Studio)"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_gravity="bottom"
    android:layout_height="112dp" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textSize="64sp" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</androidx.constraintlayout.widget.ConstraintLayout>
>

Pueden modificar el layout_gravity para observar como se mueve el recuadro dentro de la ventana como por ejemplo con “start” o "center"
Y como el layout_gravity mueve es el recuadro como tal y no lo que hay en su interior por eso se puso un tamaño determinado al layout_height.

View: es un elemento como tal, que se muestra en pantalla. Puede ser un texto, botón o una imagen. Estos elementos se cierran en la misma linea en que se definen, son inline-elements.


Viewgroup: Es elemento que contiene un conjunto de views, solo sirve para agrupar vistas relacionadas entre si. Los cambios que se le haga a un viewgroup afectarán a los elementos dentro de el.

Como dato curioso, no es lo mismo un android:layout_gravity y un android:gravity:

  • android:layout_gravity: Afecta a todo el layout. Por ejemplo, android:layout_gravity=“right” dentro de un TextView alinearía a la derecha a todo el TextView sin modificar la alineación interna del texto.

  • android:gravity: Afecta solo internamente al layout. Por ejemplo, android:gravity=“right” dentro de un TextView alinearía a la derecha al texto interno al TextView sin modificar la alineación del TextView como tal.

En nuestro proyecto Android podemos encontrarnos con:
✔️ View Group: Almacena un grupo de view.
✔️ View: Vista de diseño.

Curso importante y necesario pero extremadamente desactualizado, por lo que lo hace casi inútil, el IDE a cambiado demasiado y por mas que se entienda lo que dice el profesor es imposible seguirle el ritmo. Un curso que debe ser actualizado si o si
    • View

      Es un elemento individual que se va a mostrar por pantalla. Por lo generar estos tags se cierran en la misma línea en la que se definen.

      <TextView />
      <ImageView />
      <EditText />
      
    • ViewGroup

      Agrupa vistas relacionadas entre si. Cuando se tiene elementos dentro de este los cambios que se hagan a un ViewGroup afectarán también a los elementos que lo contienen.

      <LinealLayout android:gravity="start"> <!-- ViewGroup -->
      	<TextView />
          <ImageView />
          <EditText />
      </LinealLayout>
      

      En el ejemplo anterior el atributo gravity aplicado al ViewGroup <LinealLayout> afectará también a los Views que están en su interior.

      🛈 Nota: pueden haber tantos ViewGroups anidados como sea necesario, no hay una limitación al respecto. Ejemplo:

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
          android:orientation="vertical" android:layout_width="match_parent"    
          android:layout_height="match_parent"
          android:gravity="end|bottom"> 
          <!-- gravity afectará a los elementos del ViewGroup. "end|bottom" → Permite poner varios valores -->
          
          <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Hola Mundo!" />
      
          <EditText
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:autofillHints="Hi" />
          
      </LinearLayout>
      
  • Ahora los View group tienen otra sintaxis:
<androidx.appcompat.widget.LinearLayoutCompat >
// o bien
<androidx.constraintlayout.widget.ConstraintLayout >
  • Para que android:gravity funcione se debe usar el primero.

ViewGroup y View: Diferencias básicas
Las vistas en Android están definidas por un XML, así que eventualmente acabaremos trabajando solo sobre texto. Pero Android va a tomar este XML y a procesarlo entonces hay que saber la diferencia entre los tipos de vista que hay.

<h4>View</h4>

Es un elemento que se muestra por pantalla, usualmente se cierran en la misma línea en la que se definen (inline).

<TextView />
<h4>ViewGroup</h4>

Es un elemento que contiene otros Views, es decir, un ViewGroup sirve para agrupar vistas relacionadas entre sí. Cabe mencionar que los cambios que hagamos en el ViewGroup afectarán a los elementos dentro de él.

<LinearLayout android:...>
	<TextView />
	****<ImageView />	
</LinearLayout/>

Es posible tener Viewgroups con ViewGroups anidados.

Ojala algun dia Kotlin termine de reemplazar a Java

Para organizar el código pueden hacer Format con:

Ctr - alt - L

En la versión actual de AS que estoy usando no esta funcionando el ViewGroup de la manera que esta explicado y no se como usarlo. Alguien me pordria explicar?

Sin duda, este curso sera fácil de adaptarse 😉

me recuerda cuando empezaba en visual basic o java de alinear u ordenar por código

Primera vez que veo que no se utiliza el caracter “,” o el “;” para concatenar “atributos” o caracteristicas y utilizar “|” directamente.

Para mi versión Android Studio Koala | 2024.1.1 Patch 1 use lo siguiente: activity\_main.xml ![](https://static.platzi.com/media/user_upload/carbon%20%281%29-afcdcec8-bc13-44e7-a788-94a7916dbe57.jpg) strings.xml ![](https://static.platzi.com/media/user_upload/carbon-076f8ddc-33d7-4492-8fa4-fc86c962773c.jpg)

Lee sobre gravity AQUÍ

TIPOS DE VISTAS EN ANDROID
View y ViewGroup

View :es un elemento que se va mostrar por pantalla

  • TextView
  • ImageView
  • EditText

ViewGroup: es un elemento que sirve para agrupar elementos (views)

  • los cambios que hagamos en este afectaran todos los elementos dentro de el.
  • pueden haber muchos ViewGroup que tengan viewGroups anidados, no hay una limitante en ello.

Basicamente…

viewGroup = <div> en HTML...

Un ViewGroup es un objeto invisible que se usa para contener otros objetos View y ViewGroup con el fin de organizar y controlar el layout de una pantalla. Los objetos ViewGroup son utilizados para la creación de una jerarquía de objetos View (ver abajo) de modo que pueda crear layouts más complejos. Dicho esto, cuánto más simple pueda mantenerse un layout, más simple será el desempeño.

Buen aporte continuando con el curso.

Por fin aprendo el nombre de ese carácter xD (|)

me gusto eso de agregar dos valores al atributo

gravity="end|bottom"

Diferencias entre View y ViewGroup
**View ** == TextView, EditText, etc
Dentro de un componente View no puede haber más Views.
**ViewGroup ** == CardView, LinearLayout, ConstraintLayout, etc
Dentro de un ViewGroup puede haber View´s y ViewGroup´s.

LinearLayout es un ViewGroup

<LinearLayout android:...> </LinearLayout>

TIPOS DE VISTAS EN ANDROID
View y ViewGroup

ViewGroup -> Contiene un conjunto de view y las propiedades que agregue los objetos dentro se veran afectado.

View -> Vista de diseño

Cómo hace para auto completar el TextView ?

Gracias por la Explicación.

Comparando con Java Swing un viewGroup sería un JPanel

Estructura de un Layout
Un layout es un xml que android procesa y genera una imagen
Sus tipo s de elemento son:
View: Elemento que se muestra por pantalla, se suelen cerrar en la misma linea que se definen. Inline element
Viewgroup: Elemento que agrupa elementos, las cambios al viewgroup afectaran a sus elementos. Es posible tener viewgroups anidados

así que los ViewGroup son como los div en html?

<h3>View</h3>

son elementos de vista básicos como un TextView, ImageView, EditText,…

<h3>ViewGroup</h3>

Un viewGroup contiene diferentes views

Los cambios que realicemos en un viewGroup afectan a los views que estan dentro de él.

No existe una imiitante para anidar los viewGroups

Existen ViewGroups que solo sirven para agregar animaciones a los elementos .

<h4>Gravity</h4>

Atributos gravity: “centar/start/end” nos indica a que dirección se alinearan los hijos del viewGroup

se pueden realizar combinaciones con | por ejemplo:

android:gravity="end|bottom"