Android
ConstraintLayout
Sök…
Introduktion
ConstraintLayout
är en ViewGroup
som gör att du kan placera och storlekar widgetar på ett flexibelt sätt. Den är kompatibel med Android 2.3 (API-nivå 9) och högre.
Det låter dig skapa stora och komplexa layouter med en platt vyhierarki. Det liknar RelativeLayout
att alla vyer läggs ut enligt förhållandena mellan syskonvyer och överordnad layout, men det är mer flexibelt än RelativeLayout
och lättare att använda med Android Studios Layout Editor.
Syntax
ConstraintLayout
public void addView (Visa barn, int index, ViewGroup.LayoutParams params)
public ConstraintLayout.LayoutParams genereraLayoutParams (AttributeSet attrs)
public void onViewAdded (View view)
public void onViewRemoved (View view)
public void removeView (View view)
offentligt ogiltigt begäranLayout ()
skyddade booleska checkLayoutParams (ViewGroup.LayoutParams params)
skyddad ConstraintLayout.LayoutParams genereraFaultLayoutParams ()
skyddad ViewGroup.LayoutParams genereraLayoutParams (ViewGroup.LayoutParams params)
skyddat tomrum onLayout (boolean ändrats, int vänster, int övre, int höger, int botten)
skyddat tomrum onMeasure (int breddenMätningSpek, int höjdMätningSpec)
ConstraintLayout.LayoutParams
public void resolLayoutDirection (int layoutDirection)
validera offentligt ogiltigt ()
skyddat tomrum setBaseAttribut (TypedArray a, int breddAttr, int höjdAttr)
parametrar
Parameter | detaljer |
---|---|
barn | View som ska läggas till i layouten |
index | Indexet för View i layouthierarkin |
params | LayoutParams of the View |
attrs | AttributeSet som definierar LayoutParams |
se | View som har lagts till eller tagits bort |
ändrats | Anger om denna View har ändrat storlek eller position |
vänster | Vänsterposition i förhållande till överordnad View |
topp | Den övre positionen i förhållande till överordnad View |
rätt | Rätt position i förhållande till den överordnade View |
botten | Den nedre positionen, relativt föräldrarnas View |
widthMeasureSpec | De horisontella rymdkraven som föräldrarna View |
heightMeasureSpec | De vertikala rymdkraven som föräldrarna View |
layoutDirection | - |
en | - |
widthAttr | - |
heightAttr | - |
Anmärkningar
På Google IO 2016 tillkännagav Google en ny Android-layout med namnet ConstraintLayout.
Var uppmärksam på att för närvarande är denna layout en Beta-version .
För mer om begränsningslayout:
https://codelabs.developers.google.com/codelabs/constraint-layout/index.html
Lägga till ConstraintLayout i ditt projekt
För att arbeta med ConstraintLayout, behöver du Android Studio version 2.2 eller nyare och har åtminstone version 32 (eller högre) av Android Support Repository.
- Lägg till biblioteket med begränsningslayout som ett beroende i filen
build.gradle
:
dependencies {
compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
- Synkronisera projektet
Så här lägger du till en ny begränsningslayout till ditt projekt:
- Högerklicka på din moduls layoutkatalog och klicka sedan på
New > XML > Layout XML.
- Ange ett namn för layouten och ange
"android.support.constraint.ConstraintLayout"
för root taggen. - Klicka på Slutför .
Annars lägger du bara till en layoutfil:
<?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>
kedjor
Sedan ConstraintLayout
alpha 9 finns kedjor tillgängliga. En kedja är en uppsättning vyer inuti en ConstraintLayout
som är kopplade i två riktningar mellan dem, dvs A ansluten till B med en begränsning, och B ansluten till A med en annan begränsning.
Exempel:
<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>
I det här exemplet är de två vyerna placerade under varandra och båda är centrerade vertikalt. Du kan ändra den vertikala positionen för dessa vyer genom att justera kedjans förspänning . Lägg till följande kod i det första elementet i en kedja:
app:layout_constraintVertical_bias="0.2"
I en vertikal kedja är det första elementet en vy längst upp, och i en horisontell kedja är det den längst till vänster. Det första elementet definierar hela kedjans beteende.
Kedjor är en ny funktion och uppdateras ofta. Här är en officiell Android-dokumentation om kedjor.