Android
ConstraintLayout
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.
- 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'
}
- Projekt synchronisieren
So fügen Sie Ihrem Projekt ein neues Constraint-Layout hinzu:
- Klicken Sie mit der rechten Maustaste auf das Layoutverzeichnis Ihres Moduls, und klicken Sie dann auf
New > XML > Layout XML.
- Geben Sie einen Namen für das Layout ein und geben Sie
"android.support.constraint.ConstraintLayout"
als Root-Tag ein. - 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.