Android ConstraintLayout 相对于右侧项目的宽度

Android ConstraintLayout width relative to item on the right

在iOS中,我可以在项目之间设置一个space,在Android中如何实现?

例如:

我想在屏幕左侧有一个 TextView,固定在 parent 的左边缘,在屏幕右侧有一个 TextView,固定在parent 的右边缘,两者在同一行。

现在我希望左侧 TextView 的宽度尽可能宽,但左侧 TextView 和右侧 TextView 之间的最小宽度为 16dp space。

希望大家理解。

如果我明白你想要什么,你可以使用 paddingTextView 添加你需要的 space。如果您使用 RelativeLayout 作为父布局,则可以左右对齐 TextView

关于在视图周围留下 space,您会考虑使用 margin (see here for the difference between padding and margin in Android layouts)。

特别是在 ConstraintLayout 中,它看起来像:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <TextView
        android:id="@+id/left_text_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/right_text_view"
        android:layout_marginRight="16dp"
        android:text="left text" />

    <TextView
        android:id="@+id/right_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintRight_toRightOf="parent"
        android:text="right text" />

</android.support.constraint.ConstraintLayout>

注意 TextView 宽度之间的差异。正确的是 wrap_content 所以它会改变它的大小以适应它的文本。左边的宽度为 0dp,在 ConstraintLayout 中表示 "match constraints"。它需要左右约束才能计算出宽度,所以我们都给出了。

我们还在第一个 TextView 的右侧添加了边距,以确保视图之间的间隙。或者,我们可以在第二个 TextView 上将 16dp 添加为 layout_marginLeft 或将其拆分为每个 8dp,具体取决于具体情况。