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.

  1. 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'
}
  1. Synkronisera projektet

Så här lägger du till en ny begränsningslayout till ditt projekt:

  1. Högerklicka på din moduls layoutkatalog och klicka sedan på New > XML > Layout XML.
  2. Ange ett namn för layouten och ange "android.support.constraint.ConstraintLayout" för root taggen.
  3. 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.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow