如何水平布局两个 TextView,使它们在中间相遇,但只使用所需的空间

问题描述 投票:0回答:0

我正在尝试创建一个布局,其中包含两个水平对齐的文本字段,每个文本字段都有一个前置图像图标。其中一个字段左对齐,另一个右对齐,像这样:

|[*]Some text          [*]Some text]|

当文本字段变长时,我希望它们扩展但不重叠,即

|[*]Some longer tex... [*]Some text|

|[*]Some text [*]Some longer tex...|

|[*]Some longer...[*]Some longer...|

我一直在尝试使用

CurvularLayout
和水平链接来做到这一点,但我遇到的问题是两个文本视图的大小均匀,无论内容字符串有多长。

我想要实现的是一种布局,它使用文本视图的可用空间,但不会超出它的需要。有谁知道我怎样才能做到这一点?

当前布局:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toStartOf="@+id/textView2"
        app:layout_constraintStart_toEndOf="@+id/textView"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@android:drawable/btn_star_big_on" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toStartOf="@+id/textView"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintHorizontal_chainStyle="spread_inside"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@android:drawable/btn_star_big_on" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:text="some absurdly even more long text"
        app:layout_constraintEnd_toStartOf="@+id/textView2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/imageView"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:text="shorter"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/textView"
        app:layout_constraintTop_toTopOf="parent" />


</androidx.constraintlayout.widget.ConstraintLayout>
android-constraintlayout constraint-layout-chains
© www.soinside.com 2019 - 2024. All rights reserved.