Cadeias de restrição e reticências de texto + Imagem à direita

ATUALIZAÇÃO DE JULHO DE 2018:

Se você estiver usandoConstraintLayout 1.1.0, a propriedade correta a ser usada éapp:layout_constrainedWidth="true" no lugar do velhoapp:layout_constraintWidth_default="wrap" (e a contrapartida da altura). Veja a resposta atualizada.

ATUALIZAÇÃO NOVEMBRO 2017:

Se você estiver usandoConstraintLayout 1.0.0 estável (ou acima) (1.0.2 no momento), consulte a resposta atualizada para obter uma solução mais simples sem a necessidade de aninhar layouts.

Pergunta original:

UsandoConstraintLayouts-Beta3 lançado em 3 de novembro de 2016. (fonte)

Estou tentando fazer o seguinte:

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

O que consegui com um layout assim:

  <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"/>

Parece bom, mas quando o texto é maior que o espaço disponível…

| | |<-[TextView Larger Than The Space Avail]| | | A exibição de texto possui um estilo que especifica estes:

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

Entãodevemos trabalho, mas não tenho certeza de quais restrições preciso para que a imagem deslize até a direita e, em seguida,Pare lá e deixe a visualização de texto entender que não há mais espaço.

o que estou perdendo?

Nota: Se eu definir a largura do texto para 0dp, ele funcionará, mas a imagem estará sempre à direita (o viés horizontal parece ser ignorado)

Nota 2:Eu tentei isso com beta2, bem, de fato, parece que Beta3 tem umbug no editor visual.

ATUALIZAR: Tentei replicar isso no Xcode / AutoLayout:

É assim que parece com um Texto Curto

Agora, o mesmo layout, basta digitar um texto longo na exibição de texto…

Como você pode ver, a restrição de trilha (direita) para a visualização da imagem diz: você está8 ou mais pontos da margem direita.

Também está afixado à esquerda no rótulo (textView).

Pelo que acabei de aprender no Twitter, estepode não ser possível no ConstraintLayout do Android no momento:Fonte

questionAnswers(5)

yourAnswerToTheQuestion