在两个视图上设置左右属性时,相对布局会消失两个视图

Relative layout disappears both views when setting right and left properties on both

我的 RelativeLayout 中现在有以下布局

<EditText
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_toStartOf="@+id/button"
    android:layout_toLeftOf="@id/button"
    android:hint="Whatsup!"
    android:padding="10dp" />

    <ImageView
        android:id="@id/button"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:layout_alignBottom="@id/text"
        android:layout_alignTop="@id/text"
        android:src="@drawable/ic_mic_black_off"
        android:layout_alignParentEnd="true" />

这使得我的 ImageView 的大小为 80dp,并且它的左侧填充了 EditText。

现在,如果我添加一个 属性 "android:layout_toRightOf="@id/text"",那么我的两个视图都消失了吗?这是为什么?

这是因为循环依赖。您的观点相互依存,将自己置于屏幕上。

你的 EditText 已经依赖于 android:layout_toStartOf="@+id/button" ImageView 现在当你添加 android:layout_toRightOf="@id/text" 你的 ImageView 依赖于 EditText 它变成圆。这是不允许的。

如果您在工作室中查看“设计”选项卡下方,将会有红色感叹号。单击它,您将看到以下错误。