在父视图的两侧放置两个宽度为 wrap_content 的多行 TextView

Nik*_*lay 7 layout android textview android-constraintlayout

请帮我实现以下两个TextView的排列:

在此处输入图片说明

  1. 左边是一个带标题的简单 TextView,右边是另一个 TextView,左边是一个 Drawable(这很重要,因为我不能使用match_parent)。两个 TextViews 都应该被wrap_content压到他们的身边。
  2. 如果其中一个 TextView 太长,它应该靠在另一个 TextView 上并包装自己的文本。
  3. 如果两个 TextView 都很长,那么它们应该占用相同的空间。它们都不应该被推到父视图之外。

Mut*_*ran 6

您可以同时使用LinearLayoutConstraintLayout,这里的主要内容是android:maxWidth我们需要给出一个视图,另一个视图将基于此进行调整。

ConstraintLayout 例子

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

    <TextView
        android:id="@+id/start"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toStartOf="@+id/end"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:text="Loooooooooong Texxxxxxxt!!!!!!!!!!!!" />

    <TextView
        android:id="@+id/end"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxWidth="250dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:text="May be this is short"/>

</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

LinearLayout 例子:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Loooooooooong Texxxxxxxt!!!!!!!!!!!!!!!!!!!!!!" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxWidth="250dp"
        android:text="May be this is short with maxwidth"/>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)


小智 5

你试过Flexbox 布局吗?看起来它涵盖了你的情况。