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.

  1. 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'
}
  1. Proyecto de sincronización

Para agregar un nuevo diseño de restricción a su proyecto:

  1. Haga clic derecho en el directorio de diseño de su módulo, luego haga clic en New > XML > Layout XML.
  2. Ingrese un nombre para el diseño e ingrese "android.support.constraint.ConstraintLayout" para la etiqueta raíz.
  3. 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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow