Wie center-mehrere Ansichten zusammen mit ConstraintLayout?

Hintergrund

Google hat angekündigt, ein neues layout namens "ConstraintLayout", die angeblich die ultimative layout, das konnte Sie auf alle ersetzen des layouts während des Aufenthaltes flat (ohne verschachtelte layouts) und haben eine bessere Leistung.

Das problem

Sache ist, ich kaum sehen, alle tutorials für die es, die mir helfen könnte in dieser Angelegenheit, anders als die video vorgestellt auf der Google IO.

Was ich versuche zu tun ist, da ich ein vertikal-zentriert LinearLayout in einem anderen layout - konvertieren Sie beide in einem einzigen ConstraintLayout.

Nachdem alle, dies ist der Zweck dieser neuen layout...

Layout möchte ich mit umgehen sieht wie folgt aus:

Wie center-mehrere Ansichten zusammen mit ConstraintLayout?

Beachten Sie, dass die Ansichten in der Mitte sind nur vertikal zentriert, und dass die 2 textViews sind auf der rechten Seite der Bildansicht, die auch vertikal zentriert.

Das ganze funktioniert auch mit RelativeLayout, die das LinearLayout des 2 TextViews, aber ich wünschte zu wissen, wie zu konvertieren Sie Sie in einem einzigen ConstraintLayout.

Hier ist eine Beispiel-XML von dem, was ich gezeigt habe:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/listPreferredItemHeightSmall">

    <ImageView
        android:id="@+id/appIconImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:layout_marginEnd="4dp"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="4dp"
        android:layout_marginStart="2dp"
        android:adjustViewBounds="true"
        android:src="@android:drawable/sym_def_app_icon"
        tools:ignore="ContentDescription"/>

    <LinearLayout
        android:id="@+id/appDetailsContainer"
        android:layout_width="0px"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/appIconImageView"
        android:layout_toLeftOf="@+id/overflowView"
        android:layout_toRightOf="@+id/appIconImageView"
        android:layout_toStartOf="@+id/overflowView"
        android:orientation="vertical">

        <TextView
            android:id="@+id/appLabelTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ellipsize="marquee"
            android:text="label"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textDirection="locale"
            tools:ignore="HardcodedText,UnusedAttribute"/>

        <TextView
            android:id="@+id/appDescriptionTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ellipsize="marquee"
            android:minLines="3"
            android:text="description"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textDirection="locale"
            tools:ignore="HardcodedText,UnusedAttribute"/>
    </LinearLayout>

    <ImageView
        android:id="@+id/overflowView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:adjustViewBounds="true"
        android:background="?attr/selectableItemBackground"
        android:clickable="true"
        android:padding="10dp"
        app:srcCompat="@drawable/ic_more_vert_black_24dp"

        tools:src="@drawable/ic_more_vert_black_24dp"
        tools:ignore="ContentDescription"/>

    <ImageView
        android:id="@+id/isSystemAppImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/overflowView"
        android:layout_alignLeft="@+id/overflowView"
        android:layout_alignParentBottom="true"
        android:layout_alignRight="@+id/overflowView"
        android:layout_alignStart="@+id/overflowView"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"
        app:srcCompat="@drawable/ic_warning_black_24dp"
        tools:ignore="ContentDescription"
        tools:src="@drawable/ic_warning_black_24dp"/>

</RelativeLayout>

, Was ich versucht habe

Habe ich versucht zu Lesen, einige Artikel und sehen Sie sich einige videos von Google :

Das hat nicht geholfen, also habe ich versucht, es zu benutzen, in der Hoffnung ich werde es herausfinden, wie um ihn selbst zu benutzen.
Aber ich kann nicht herausfinden, wie es zu tun. Ich habe versucht mit der Funktion zum konvertieren von layouts, aber dieses macht ein großes Durcheinander der Ansichten und stellt zusätzliche Margen, die ich nicht haben möchte.

Die Frage

Wie kann ich umwandeln der 2-layouts in einem einzigen ConstraintLayout ?

  • diese hier: "Arbeitsbereich".co/1hmJDCgg.png?
  • Ein bisschen, aber der zentrierte Ansichten haben 2 TextViews, eine unter der anderen. Nicht ein. Derzeit befinden Sie sich innerhalb eines LinearLayout, die zentriert ist. Auch das LinearLayout ist zwischen den rechten und linken Ansichten.
  • haben Sie versucht, die automatische Konvertierung im design-Bereich? "Convert <your_layout> zu ConstraintLayout"?
  • Ja. und das Ergebnis hat nicht glätten Sie es überhaupt. Sie können sehen, meine versuche hier: code.google.com/p/android/issues/detail?id=212116
Schreibe einen Kommentar