Suche…


Einführung

ConstraintLayout ist eine ViewGroup , mit der Sie Widgets flexibel positionieren und ViewGroup können. Es ist kompatibel mit Android 2.3 (API Level 9) und höher.

Sie können damit große und komplexe Layouts mit einer flachen Ansichtshierarchie erstellen. RelativeLayout ähnelt RelativeLayout , als alle Ansichten nach Beziehungen zwischen den Ansichten von Geschwistern und dem übergeordneten Layout angeordnet sind, es ist jedoch flexibler als RelativeLayout und mit dem Layout Editor von Android Studio einfacher zu verwenden.

Syntax

  • ConstraintLayout

    • public void addView (View child, int index, ViewGroup.LayoutParams-Parameter)

    • public ConstraintLayout.LayoutParams generateLayoutParams (AttributeSet-Attribute)

    • public void onViewAdded (Ansichtsansicht)

    • public void onViewRemoved (Ansichtsansicht)

    • public void removeView (Ansichtsansicht)

    • public void requestLayout ()

    • protected boolean checkLayoutParams (ViewGroup.LayoutParams-Parameter)

    • protected ConstraintLayout.LayoutParams generateDefaultLayoutParams ()

    • protected ViewGroup.LayoutParams generateLayoutParams (ViewGroup.LayoutParams-Parameter)

    • protected void onLayout (boolean geändert, int links, int oben, int rechts, int unten)

    • geschützt void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

  • ConstraintLayout.LayoutParams

    • public void resolLayoutDirection (int layoutDirection)

    • public void validate ()

    • geschützt void setBaseAttributes (TypedArray a, int widthAttr, int heightAttr)

Parameter

Parameter Einzelheiten
Kind Die View , die dem Layout hinzugefügt werden soll
Index Der Index der View in der Layouthierarchie
Params Die LayoutParams der View
Attrs Das AttributeSet , das die LayoutParams definiert
Aussicht Die hinzugefügte oder entfernte View
geändert Gibt an, ob diese View Größe oder Position geändert hat
links Die linke Position relativ zur übergeordneten View
oben Die obere Position relativ zur übergeordneten View
Recht Die rechte Position relativ zur übergeordneten View
Unterseite Die untere Position relativ zur übergeordneten View
widthMeasureSpec Der horizontale Platzbedarf der übergeordneten View
heightMeasureSpec Der vertikale Platzbedarf der übergeordneten View
layoutDirection -
ein -
widthAttr -
heightAttr -

Bemerkungen

Auf der Google IO 2016 gab Google ein neues Android-Layout mit dem Namen ConstraintLayout bekannt.
Achten Sie darauf, da dieses Layout derzeit eine Beta-Version ist .

Weitere Informationen zum Constraint-Layout:

https://codelabs.developers.google.com/codelabs/constraint-layout/index.html

ConstraintLayout zu Ihrem Projekt hinzufügen

Um mit ConstraintLayout arbeiten zu können, benötigen Sie Android Studio Version 2.2 oder neuer und mindestens die Version 32 (oder höher) des Android Support Repository.

  1. Fügen Sie die Constraint Layout-Bibliothek als Abhängigkeit in Ihrer build.gradle Datei hinzu:
dependencies {
   compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
  1. Projekt synchronisieren

So fügen Sie Ihrem Projekt ein neues Constraint-Layout hinzu:

  1. Klicken Sie mit der rechten Maustaste auf das Layoutverzeichnis Ihres Moduls, und klicken Sie dann auf New > XML > Layout XML.
  2. Geben Sie einen Namen für das Layout ein und geben Sie "android.support.constraint.ConstraintLayout" als Root-Tag ein.
  3. Klicken Sie auf Fertig stellen .

Ansonsten fügen Sie einfach eine Layoutdatei hinzu:

<?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>

Ketten

Seit ConstraintLayout alpha 9 stehen Ketten zur Verfügung. Eine Kette ist eine Gruppe von Ansichten innerhalb eines ConstraintLayout , die bidirektional miteinander verbunden sind, dh A mit B mit einer Einschränkung und B mit A mit einer anderen Einschränkung.

Beispiel:

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

In diesem Beispiel befinden sich die beiden Ansichten untereinander und beide sind vertikal zentriert. Sie können die vertikale Position dieser Ansichten ändern, indem Sie die Vorspannung der Kette anpassen. Fügen Sie dem ersten Element einer Kette den folgenden Code hinzu:

app:layout_constraintVertical_bias="0.2"

In einer vertikalen Kette ist das erste Element eine Ansicht ganz oben und in einer horizontalen Kette ist es die Ansicht ganz links. Das erste Element definiert das Verhalten der gesamten Kette.

Ketten sind eine neue Funktion und werden regelmäßig aktualisiert. Hier ist eine offizielle Android-Dokumentation zu Ketten.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow