ConstraintLayout优先考虑textview截断

时间:2018-09-05 18:41:21

标签: android android-constraintlayout

我试图在占用最大空间时截断特定的textview。这是我的布局情况示例:

|| [TextView 1] [TextView 2] [ImageView] ||

此水平链存在于具有静态宽度的单元格中。第一个TextView具有静态文本,图像视图图标具有静态大小,而第二个Textview具有可变宽度。我将它们链接在一起,并适当地设置了约束。

我的问题是,当TextView 2太长时,即使ImageView的正确约束设置为父级,它也会将ImageView推出单元格。我想发生的是,当TextView 2太长时,它应该被截断,而将图标保留在父级的范围内。有没有一种方法可以使ImageView的左边缘充当ImageView到达父级末尾时TextView 2必须遵守的边界?

编辑:

这是我的xml的准系统示例。我认为还值得注意的是,以下布局的xml正在使用include标记注入到另一个布局中。下面xml的父级的尺寸设置为match-parent,并且要注入的布局将尺寸设置为静态宽度和高度。

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Title"
        bind:layout_constraintLeft_toLeftOf="parent"
        bind:layout_constraintRight_toLeftOf="@id/info"
        bind:layout_constraintBottom_toBottomOf="parent"
        bind:layout_constraintHorizontal_chainStyle="packed"/>

    <TextView
        android:id="@+id/info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="4dp"
        android:text="@{viewModel.info}"
        bind:layout_constraintLeft_toRightOf="@id/title"
        bind:layout_constraintRight_toLeftOf="@id/icon"
        bind:layout_constraintBottom_toBottomOf="@id/title"/>

    <ImageView
        android:id="@+id/icon"
        android:layout_width="12dp"
        android:layout_height="12dp"
        android:src="@drawable/icon"
        android:layout_marginLeft="4dp"
        bind:layout_constraintLeft_toRightOf="@id/info"
        bind:layout_constraintBottom_toBottomOf="@id/info"
        bind:layout_constraintTop_toTopOf="@id/info"
        bind:layout_constraintRight_toRightOf="parent"/>

1 个答案:

答案 0 :(得分:1)

为第二个app:layout_constrainedWidth="true"设置TextView属性。即使TextView's的宽度为wrap_content,这也会施加约束。

如果您还希望它保持在一行内,并且在达到最大宽度时在末尾变椭圆,请添加:

android:maxLines="1"
android:ellipsize="end"