Android 如何在线性布局的文本视图之间分配空间,以便根据不同的文本长度进行匹配

Android 如何在线性布局的文本视图之间分配空间,以便根据不同的文本长度进行匹配,android,android-layout,layout,textview,android-linearlayout,Android,Android Layout,Layout,Textview,Android Linearlayout,在下图中,红色框表示线性布局 在每个线性布局中,我有两个子文本视图来显示细节。文本视图上的文本由从GoogleBooksAPI获取的JSON数据填充 我发现困难的是如何根据不同的文本长度保持两个文本视图之间的空间 就像Java的第五个列表项一样。。。可以扩展更多,因为还有很多空间 在第一个项目中,标题和作者姓名都很长,因此两者应平均显示50-50% 在第三个列表项皮尔逊教育。。。可以扩展得更多,因为前面有更多的空白 因此,如何确定/分配布局中适合各种情况的空间 线性布局代码: 尝试在xml上

在下图中,红色框表示线性布局

在每个线性布局中,我有两个子文本视图来显示细节。文本视图上的文本由从GoogleBooksAPI获取的JSON数据填充

我发现困难的是如何根据不同的文本长度保持两个文本视图之间的空间

就像Java的第五个列表项一样。。。可以扩展更多,因为还有很多空间

在第一个项目中,标题和作者姓名都很长,因此两者应平均显示50-50%

在第三个列表项皮尔逊教育。。。可以扩展得更多,因为前面有更多的空白

因此,如何确定/分配布局中适合各种情况的空间

线性布局代码:

尝试在xml上使用RelativeLayout,但您必须优先考虑将占用大部分空间的textView(两个标题中的一个或出版商),然后在textView上添加autoSizeTextType。 您也可以使用ConstraintLayout,但必须限制要在recyclerview中显示的项目数,或者创建一个函数来检测特定字符串是否由n个字符组成,然后调整填充或边距。

<LinearLayout
    android:id="@+id/header_ll"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="4dp"
    android:layout_toRightOf="@+id/image">

    <TextView
        android:id="@+id/title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="8dp"
        android:layout_weight="2.5"
        android:ellipsize="end"
        android:maxLines="1"
        android:text="Java Programming is really long text right not"
        android:textColor="#ffffff"
        android:textSize="16sp"></TextView>

    <TextView
        android:id="@+id/publisher"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_weight="1"
        android:ellipsize="end"
        android:gravity="end"
        android:maxLines="1"
        android:text="John Wiley and its going long &amp; Sons"
        android:textColor="#ffffff"
        android:textSize="10sp"></TextView>
</LinearLayout>
<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorAccent">

            <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_toLeftOf="@+id/publisher"
                android:autoSizeTextType="uniform"
                android:ellipsize="end"
                android:maxLines="1"
                android:text="Java Programming is really long text right not Java"
                android:textColor="#ffffff"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/publisher"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_alignParentRight="true"
                android:autoSizeTextType="uniform"
                android:ellipsize="end"
                android:gravity="end"
                android:maxLines="1"
                android:text="John Wiley &amp; Sons sdafsdfsfsdf"
                android:textColor="#ffffff"
                android:textSize="16sp" />
        </RelativeLayout>