在 ConstraintLayout android 中填充水平宽度的最佳实践
Best practice to fill horizontal width in ConstraintLayout android
我需要做这个设计
通常我使用 LinearLayout
创建此类设计,但在这种情况下它是一个列表项,所以我不想使用嵌套的 linearLayouts。
我想一次性完成这个设计ConstraintLayout
。但是我无法找到任何解决方案,我可以将大部分水平 space 提供给 ProductTitle,并将一些宽度提供给图像和库存按钮。
我知道我们在 LinearLayout 中提供权重,但我如何在 ConstraintLayout
中以 if text is long enough then it should not override/misplace the stock button
的方式实现这一点
任何帮助将不胜感激
将宽度设置为 0dp 并在两侧对其进行约束
<Imageview app:layout_constraintStart_toStartOf="parent" />
<TextView
android:layout_width="0dp"
app:layout_constraintEnd_toStartOf="@+id/switch"
app:layout_constraintStart_toEndOf="@+id/image" />
<Switch app:layout_constraintEnd_toEndOf="parent" />
如果我正确理解你的问题,你想要实现的是这样的
example image
代码如下:
<ImageView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_close_dark_grey"
android:layout_marginStart="50dp"
android:layout_marginTop="50dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse pretium, velit egestas fringilla congue, magna massa fringilla metus, nec fermentum nunc justo quis arcu. Aliquam erat volutpat"
app:layout_constraintStart_toEndOf="@id/image1"
app:layout_constraintEnd_toStartOf="@id/image2"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/image2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_close_dark_grey"
android:layout_marginEnd="50dp"
android:layout_marginTop="50dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
但是你想打破这条线并显示点。这非常简单:只需将这两个属性添加到 TextView
android:lines="1"
android:ellipsize="end"
这样你说的是只显示一行,而省略号是用来显示点和分隔文本的。
我需要做这个设计
通常我使用 LinearLayout
创建此类设计,但在这种情况下它是一个列表项,所以我不想使用嵌套的 linearLayouts。
我想一次性完成这个设计ConstraintLayout
。但是我无法找到任何解决方案,我可以将大部分水平 space 提供给 ProductTitle,并将一些宽度提供给图像和库存按钮。
我知道我们在 LinearLayout 中提供权重,但我如何在 ConstraintLayout
中以 if text is long enough then it should not override/misplace the stock button
任何帮助将不胜感激
将宽度设置为 0dp 并在两侧对其进行约束
<Imageview app:layout_constraintStart_toStartOf="parent" />
<TextView
android:layout_width="0dp"
app:layout_constraintEnd_toStartOf="@+id/switch"
app:layout_constraintStart_toEndOf="@+id/image" />
<Switch app:layout_constraintEnd_toEndOf="parent" />
如果我正确理解你的问题,你想要实现的是这样的
example image
代码如下:
<ImageView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_close_dark_grey"
android:layout_marginStart="50dp"
android:layout_marginTop="50dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse pretium, velit egestas fringilla congue, magna massa fringilla metus, nec fermentum nunc justo quis arcu. Aliquam erat volutpat"
app:layout_constraintStart_toEndOf="@id/image1"
app:layout_constraintEnd_toStartOf="@id/image2"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/image2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_close_dark_grey"
android:layout_marginEnd="50dp"
android:layout_marginTop="50dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
但是你想打破这条线并显示点。这非常简单:只需将这两个属性添加到 TextView
android:lines="1"
android:ellipsize="end"
这样你说的是只显示一行,而省略号是用来显示点和分隔文本的。