【问题标题】:Make view wide as much as possible without cutting other view在不切割其他视图的情况下尽可能扩大视图
【发布时间】:2020-03-05 10:46:44
【问题描述】:

我在一个约束布局中有两个视图(A 和 B)。我想将 A 和 B 限制在父级的左侧/开始处,但我希望 A 尽可能宽,而不会将 B 的一部分(应该完全显示)切割到 A 的右侧。如果 A 太宽,它应该换行到下一行,以便 B 可以完全显示。这是我迄今为止尝试过的,但 A 似乎采用了固定宽度,在其自身和 B 之间留下了空白空间。

<androidx.appcompat.widget.AppCompatTextView
        android:ellipsize="end"
        android:maxLines="2"
        android:layout_marginEnd="10dp"
        tools:text="Iceland A text"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/b"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constrainedWidth="true"
        android:textStyle="bold"
        android:id="@+id/a"
        android:layout_width="0dp"
        android:layout_height="wrap_content"/>

<androidx.appcompat.widget.AppCompatTextView
        android:textColor="@color/tcBlack"
        tools:text="500 Items"
        android:id="@+id/b"
        android:textSize="18sp"
        android:layout_marginStart="10dp"
        app:layout_constraintStart_toEndOf="@+id/a"
        app:layout_constraintBottom_toBottomOf="@+id/a"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="@+id/a"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

【问题讨论】:

  • 据我了解您的问题。您可以将视图 B 的右侧约束设置为父级右侧,并将宽度设置为 wrap_content。然后,您可以将视图 A 的左侧约束设置为父级的左右约束,以使宽度为 match_constraint 来查看 B 的左侧。
  • 我试过了,但它看起来和我上面的一样。 A 仍然似乎采用固定宽度。如果您能够使其工作,请与我分享您的 xml,我会标记您的答案。
  • 你能分享一张手机/模拟器屏幕的图片吗?我想知道它是什么样子的
  • 从文本中我不太明白你想要什么,你能分享一些你想要做什么的草图

标签: android android-layout android-constraintlayout


【解决方案1】:

尝试以下布局:

<androidx.constraintlayout.widget.ConstraintLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is some very long text. This is some very long text. This is some very long text. This is some very long text. This is some very long text. "
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/textView2"
        app:layout_constrainedWidth="true"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/textView1"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

两个文本视图放在一个打包链中,这将使视图居中。将偏差设置为“0.0”会将文本视图一直移动到屏幕的左侧。设置app:layout_constrainedWidth="true" 使文本视图保持在屏幕边界内。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    相关资源
    最近更新 更多