Android
RestricciónDisposición
Buscar..
Introducción
ConstraintLayout
es un ViewGroup
que le permite ViewGroup
y dimensionar widgets de una manera flexible. Es compatible con Android 2.3 (API nivel 9) y superior.
Le permite crear diseños grandes y complejos con una jerarquía de vista plana. Es similar a RelativeLayout
en el sentido de que todas las vistas están diseñadas de acuerdo con las relaciones entre las vistas de hermanos y el diseño principal, pero es más flexible que RelativeLayout
y más fácil de usar con el Editor de diseño de Android Studio.
Sintaxis
RestricciónDisposición
public void addView (Ver hijo, índice int, ViewGroup.LayoutParams params)
Public ConstraintLayout.LayoutParams generateLayoutParams (attributeSet attrs)
public void onViewAdded (Vista de vista)
public void onViewRemoved (Vista de vista)
public void removeView (Vista de vista)
solicitud de anulación públicaLayout ()
checkLayoutParams booleanas protegidas (ViewGroup.LayoutParams params)
ConstraintLayout.LayoutParams generaDefaultLayoutParams () protegido
ViewGroup.LayoutParams generaLayoutParams protegidos (ViewGroup.LayoutParams params)
void protegido onLayout (booleano cambiado, int izquierda, int arriba, int derecha, int abajo)
void protegido onMeasure (int widthMeasureSpec, int heightMeasureSpec)
RestricciónLayout.LayoutParams
public void resolutionLayoutDirection (int layoutDirection)
validación del vacío público ()
setBaseAttributes void protegidos (TypedArray a, int widthAttr, int heightAttr)
Parámetros
Parámetro | Detalles |
---|---|
niño | La View que se añadirá al diseño. |
índice | El índice de la View en la jerarquía de diseño. |
params | Los LayoutParams de la View |
attrs | El AttributeSet que define los LayoutParams |
ver | La View que se ha agregado o eliminado |
cambiado | Indica si esta View ha cambiado de tamaño o posición |
izquierda | La posición izquierda, relativa a la View padre |
parte superior | La posición superior, relativa a la View principal |
Correcto | La posición correcta, relativa a la View padre |
fondo | La posición inferior, relativa a la View padre |
anchoMedidaSpec | Los requisitos de espacio horizontal impuestos por la View padre. |
alturaMedidaSpec | Los requisitos de espacio vertical impuestos por la View padre |
layoutDirection | - |
una | - |
widthAttr | - |
alturaAttr | - |
Observaciones
En Google IO 2016, Google anunció un nuevo diseño de Android llamado ConstraintLayout.
Presta atención porque actualmente, este diseño es una versión Beta .
Para más información sobre el diseño de restricciones:
https://codelabs.developers.google.com/codelabs/constraint-layout/index.html
Agregando ConstraintLayout a su proyecto
Para trabajar con ConstraintLayout, necesita Android Studio versión 2.2 o más reciente y al menos tiene la versión 32 (o superior) del repositorio de soporte de Android.
- Agregue la biblioteca de diseño de restricciones como una dependencia en su archivo
build.gradle
:
dependencies {
compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
- Proyecto de sincronización
Para agregar un nuevo diseño de restricción a su proyecto:
- Haga clic derecho en el directorio de diseño de su módulo, luego haga clic en
New > XML > Layout XML.
- Ingrese un nombre para el diseño e ingrese
"android.support.constraint.ConstraintLayout"
para la etiqueta raíz. - Haga clic en Finalizar .
De lo contrario simplemente agregue en un archivo de diseño:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.constraint.ConstraintLayout>
Las cadenas
Desde ConstraintLayout
alpha 9, las cadenas están disponibles. Una cadena es un conjunto de vistas dentro de un ConstraintLayout
que se conectan de forma bidireccional entre ellas, es decir, A está conectada a B con una restricción y B está conectada a A con otra restricción.
Ejemplo:
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- this view is linked to the bottomTextView -->
<TextView
android:id="@+id/topTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
app:layout_constraintBottom_toTopOf="@+id/bottomTextView"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainPacked="true"/>
<!-- this view is linked to the topTextView at the same time -->
<TextView
android:id="@+id/bottomTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bottom\nMkay"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/topTextView"/>
</android.support.constraint.ConstraintLayout>
En este ejemplo, las dos vistas están colocadas una debajo de la otra y ambas están centradas verticalmente. Puede cambiar la posición vertical de estas vistas ajustando el sesgo de la cadena. Agregue el siguiente código al primer elemento de una cadena:
app:layout_constraintVertical_bias="0.2"
En una cadena vertical, el primer elemento es una vista superior y en una cadena horizontal es la vista más a la izquierda. El primer elemento define el comportamiento de toda la cadena.
Las cadenas son una nueva característica y se actualizan con frecuencia. Aquí hay una documentación oficial de Android sobre cadenas.