Views y ViewGroups

Explicación de los conceptos View y ViewGroup.

La clase View representa el bloque básico de construcción de los elementos visuales de la IU.

La clase ViewGroup, por contra, es la clase base de los Layouts que son contenedores invisibles que almacenan otras Views.

VIEW

Una View ocupa un area rectangular en la pantalla y es responsable del dibujado de dicho elemento visual así como de la gestión de eventos (por ejemplo onClickListeners).

La clase View es, a su vez, la clase base para todos los componentes interactivos de la IU (botones, textos, campos de texto...)

Utilizar Views

Todas las Views en una ventana están estructuradas en un único arbol.

Se pueden añadir views directamente desde código o añadiendolas al arbol de Views en un archivo de layout XML (que es la forma preferida de hacerlo).

Hay muchas subclases de Views que actuan como controladores o son capaces de mostrar texto, imágenes u otro contenido.

Una vez creado un arbol de Views, hay algunas operaciones a realizar:

  • Definir propiedades: Por ejemplo, en un TextView, definir el texto a mostrar. Existen muchas propiedades diferentes en función de la subclase de view a utilizar.

  • Definir el foco: El foco, o la atención, de la aplicación se gestiona de manera automática en base al input del usuario. Sin embargo se puede forzar el foco en una View concreta llamando a requestFocus.

  • Definir listeners: Los listeners permiten modificar la View cuando una situación concreta se da en dicha View. Por ejemplo, un onClickListener reaccionará cuando se clique sobre la View.

  • Definir visibilidad: Se pueden mostrar u ocultar las Views utilizando setVisibility().

Implementar una View Customizada

Se pueden implementar Views customizadas que pueden ser creadas por uno mismo o por terceros.

Para implementarlas, usualmente se sobreescribiran méodos estandar que el Framework utiliza en todas las vistas. Sin embargo, no es necesario sobreescribirlos todos, con sobreescribir onDraw(android.graphics.Canvas) es suficiente.

En la documentación de Android se entra en profundidad en la implementación de Views. Esto se sale del Scope de ésta página, pero se encuentra en el enlace.

VIEWGROUP

Un ViewGroup es una View especial que contiene otras Views llamadas hijos. Es la clase base de los Layouts y los contenedores de Views.

LayoutParams

La clase ViewGroup tambien define la clase android.view.ViewGroup.LayoutParams que sirve como clase base para los parámetros del Layout.

Esta clase describe cuanto de grande va a ser la View tanto de ancho como de alto. Para ambas dimensiones puede ser uno de los siguientes valores:

  • MATCH_PARENT -> La View será tan grande como su padre (menos el Padding).

  • WRAP_CONTENT -> La View será tan grande como sea necesario para el contenido de la misma (más el Padding).

  • Un número exacto.

Existen subclases de LayoutParams para las diferentes subclases de ViewGroup. Por ejemplo, no son los mismos parámetros para AbsoluteLayout que RelativeLayout.

Last updated