【问题标题】:Relative layout disappears both views when setting right and left properties on both在两个视图上设置左右属性时,相对布局会消失两个视图
【发布时间】:2021-06-27 13:13:30
【问题描述】:

我的 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"”,那么我的两个视图都会消失吗?这是为什么呢?

【问题讨论】:

    标签: android android-relativelayout


    【解决方案1】:

    这是因为循环依赖。您的视图相互依赖才能将自己置于屏幕上。

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

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

    【讨论】: