我试图在占用最大空间时截断特定的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"/>
答案 0 :(得分:1)
为第二个app:layout_constrainedWidth="true"
设置TextView
属性。即使TextView's
的宽度为wrap_content
,这也会施加约束。
如果您还希望它保持在一行内,并且在达到最大宽度时在末尾变椭圆,请添加:
android:maxLines="1"
android:ellipsize="end"