Android
ConstraintLayout
Szukaj…
Wprowadzenie
ConstraintLayout
to ViewGroup
która pozwala na pozycjonowanie i rozmiar widżetów w elastyczny sposób. Jest kompatybilny z Androidem 2.3 (API poziom 9) i wyższym.
Umożliwia tworzenie dużych i złożonych układów z płaską hierarchią widoków. Jest podobny do RelativeLayout
ponieważ wszystkie widoki są ułożone zgodnie z relacjami między widokami rodzeństwa i układem nadrzędnym, ale jest bardziej elastyczny niż RelativeLayout
i łatwiejszy w użyciu z edytorem układu Android Studio.
Składnia
ConstraintLayout
public void addView (Wyświetl potomek, indeks wewnętrzny, parametry ViewGroup.LayoutParams)
public ConstraintLayout.LayoutParams generateLayoutParams (AttributeSet attrs)
public void onViewAdded (Wyświetl widok)
public void onViewRemoved (Zobacz widok)
public void removeView (Wyświetl widok)
public void requestLayout ()
chronione boolean checkLayoutParams (parametry ViewGroup.LayoutParams)
chroniony ConstraintLayout.LayoutParams generateDefaultLayoutParams ()
chronione ViewGroup.LayoutParams generateLayoutParams (parametry ViewGroup.LayoutParams)
protected void onLayout (zmieniono wartość logiczną, int left, int top, int right, int bottom)
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
ConstraintLayout.LayoutParams
public void resolLayoutDirection (int layoutDirection)
public void validate ()
protected void setBaseAttributes (TypedArray a, int widthAttr, int heightAttr)
Parametry
Parametr | Detale |
---|---|
dziecko | View do dodania do układu |
indeks | Indeks View w hierarchii układu |
parametry | LayoutParams of View |
attrs | AttributeSet który definiuje LayoutParams |
widok | View , który został dodany lub usunięty |
zmienione | Wskazuje, czy ten View zmienił rozmiar lub pozycję |
lewo | Lewa pozycja względem nadrzędnego View |
Top | Stanowisko góry, w stosunku do dominującego View |
dobrze | Właściwej pozycji w stosunku do dominującego View |
Dolny | Dolna pozycja względem nadrzędnego View |
widthMeasureSpec | Wymagania dotyczące przestrzeni poziomej nałożone przez View macierzysty |
heightMeasureSpec | Wymagania dotyczące przestrzeni pionowej nałożone przez View macierzysty |
layoutDirection | - |
za | - |
widthAttr | - |
heightAttr | - |
Uwagi
Na Google IO 2016 Google ogłosił nowy układ Androida o nazwie ConstraintLayout.
Zwróć uwagę, ponieważ obecnie ten układ jest wersją Beta .
Więcej informacji o układzie ograniczeń:
https://codelabs.developers.google.com/codelabs/constraint-layout/index.html
Dodawanie ConstraintLayout do swojego projektu
Aby pracować z ConstraintLayout, potrzebujesz Android Studio w wersji 2.2 lub nowszej i przynajmniej wersji 32 (lub wyższej) repozytorium obsługi Androida.
- Dodaj bibliotekę układu ograniczeń jako zależność w pliku
build.gradle
:
dependencies {
compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
- Synchronizuj projekt
Aby dodać nowy układ ograniczeń do swojego projektu:
- Kliknij prawym przyciskiem myszy katalog układu modułu, a następnie kliknij
New > XML > Layout XML.
- Wprowadź nazwę układu i wpisz
"android.support.constraint.ConstraintLayout"
jako znacznik główny. - Kliknij przycisk Zakończ .
W przeciwnym razie po prostu dodaj plik układu:
<?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>
Więzy
Od wersji ConstraintLayout
alfa 9 łańcuchy są dostępne. Łańcuch jest zestawem widoków wewnątrz ConstraintLayout
które są połączone dwukierunkowo między nimi, tj. A połączone z B z ograniczeniem i B połączone z A z innym wiązaniem.
Przykład:
<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>
W tym przykładzie dwa widoki są umieszczone jeden pod drugim i oba są wyśrodkowane pionowo. Możesz zmienić pozycję tych widoków w pionie, dostosowując odchylenie łańcucha. Dodaj następujący kod do pierwszego elementu łańcucha:
app:layout_constraintVertical_bias="0.2"
W łańcuchu pionowym pierwszy element jest widokiem od góry, a w łańcuchu poziomym jest widokiem od lewej. Pierwszy element określa zachowanie całego łańcucha.
Łańcuchy są nową funkcją i są często aktualizowane. Oto oficjalna dokumentacja Androida dotycząca łańcuchów.