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

Aportes 37

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

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.

Este curso ya esta muy antiguo, acabo de descargar android studio y está muy diferente, deberían actulizarlo, febrero 2024.

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.

    • 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.

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"