ConstraintLayout-Ketten und Text Auslassungszeichen + Bild auf der Rechten Seite

UPDATE JULI 2018:

Wenn Sie ConstraintLayout 1.1.0, die richtige Eigenschaft zu verwenden ist app:layout_constrainedWidth="true" an die Stelle der alten app:layout_constraintWidth_default="wrap" (und die Höhe Gegenstück). Siehe aktualisierte Antwort.

UPDATE-NOVEMBER 2017:

Wenn Sie ConstraintLayout 1.0.0 stabil (oder höher) (1.0.2 zu dieser Zeit), siehe die aktualisierte Antwort für eine einfachere Lösung ohne die Notwendigkeit, nest-layouts.

Ursprünglichen Frage:

Mit ConstraintLayouts-Beta3 veröffentlicht am Nov 3rd 2016. (Quelle)

Ich versuche, Folgendes zu tun:

|                                        |
|<-[TextView]<->[ImageView] -----------> |
|                                        |

Die ich erreicht haben, mit einem layout, in etwa so:

  <TextView
      android:id="@+id/textView"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"

      app:layout_constraintHorizontal_chainStyle="packed"

      app:layout_constraintLeft_toLeftOf="parent"
      app:layout_constraintTop_toTopOf="parent"
      app:layout_constraintRight_toLeftOf="@+id/caret"
      app:layout_constraintHorizontal_bias="0.0"

      android:text="Some Text"
      android:textAlignment="viewStart"
      android:gravity="start" />

  <ImageView
      android:id="@+id/caret"
      android:layout_width="wrap_content"
      android:layout_height="8dp"
      app:layout_constraintDimensionRatio="1:1"

      app:layout_constraintLeft_toRightOf="@+id/textView"
      app:layout_constraintRight_toRightOf="parent"

      app:layout_constraintTop_toTopOf="@+id/textView"
      app:layout_constraintBottom_toBottomOf="@+id/textView"


      app:layout_constraintHorizontal_bias="0.0"

      android:contentDescription=""
      app:srcCompat="@drawable/ic_selection"
      android:layout_marginStart="8dp"/>

Sieht dies gut aus, aber wenn der text länger ist als der verfügbare Platz...

|                                        |
|<-[TextView Larger Than The Space Avail]|
|                                        |

Die text-Ansicht hat einen Stil, der angibt, diese:

<item name="android:lines">1</item>
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>

Also es sollte Arbeit, aber ich bin mir nicht sicher, welchen Einschränkungen muss ich das Bild schieben, bis die Rechte und dann stop gibt und lassen Sie die text-Ansicht zu verstehen, es gibt keinen Platz mehr.

Was bin ich?

Hinweis: Wenn ich die textview die Breite der 0dp, funktioniert es, aber dann wird das Bild immer auf die richtige (horizontale Neigung zu sein scheint, ignoriert es)

Note2: ich habe versucht dies mit beta2 als gut, in der Tat, es scheint, wie der Beta3 hat eine Fehler in den visual editor.

UPDATE: ich habe versucht, zu replizieren diese in Xcode/AutoLayout:

Dies ist, wie es aussieht mit einem Kurzen Text

ConstraintLayout-Ketten und Text Auslassungszeichen + Bild auf der Rechten Seite

Nun das gleiche layout, ich tippe einfach einen langen text in der text-Ansicht...

ConstraintLayout-Ketten und Text Auslassungszeichen + Bild auf der Rechten Seite

Wie Sie sehen können, die Spur (rechts) Einschränkung für das Bild anzeigen sagt: du bist 8 oder mehr Punkte am rechten Rand.

Ist es auch fixiert an der linken Seite, um das Etikett (textView).

Aus, was ich nur aus Twitter gelernt, diese nicht möglich sein kann auf Android ConstraintLayout im moment: Quelle

Schreibe einen Kommentar