【问题标题】:Circular dependencies cannot exist in RelativeLayout, android?循环依赖不能存在于RelativeLayout,android?
【发布时间】:2014-05-28 06:30:16
【问题描述】:

我有以下布局: 我需要将按钮保留在屏幕底部,并且它应该对用户可见。 布局的其余部分应滚动。

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.vfc.sargroup.SalesOrderActivity$PlaceholderFragment" >

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/bottomLinearLayout" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Select Distributor Name"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Spinner
            android:id="@+id/spinner1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Payment Collection"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10" >
        </EditText>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Product Category"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <TableLayout
            android:id="@+id/salesTableLayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:stretchColumns="*" >
        </TableLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Total QTY"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Total Price"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Remark"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10" >
        </EditText>
    </LinearLayout>
</ScrollView>

<LinearLayout
    android:id="@+id/bottomLinearLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_below="@+id/scrollView1"
    android:layout_centerHorizontal="true"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Submit" />
</LinearLayout>
  </RelativeLayout>

我只需要滚动视图并保持按钮出现在屏幕底部。

问题出在

     android:layout_above="@+id/bottomLinearLayout"

我得到了错误

     Circular dependencies cannot exist in RelativeLayout

我的布局有什么问题?

【问题讨论】:

    标签: android android-layout android-relativelayout


    【解决方案1】:

    问题是因为布局参数中有循环引用造成的。

    例如,当视图 B 是 layout_below 视图 A 时,视图 A 不能再在其下方引用视图 B,alignRight 等。这也可以存在于多个视图之间:A 引用 B 引用 C。在那种情况下 C 可以' t 引用 A 因为循环依赖。

    你用过:-

    bottomLinearLayout 在 scrollView1 下面 然后你说scrollView1在bottomLinearLayout之上

    它不会那样工作。 使用一个

    【讨论】:

      【解决方案2】:

      你不能说bottomLinearLayout在scrollView1之下然后说scrollView1在bottomLinearLayout之上。只做一个,不要两个都做。

      这是循环的,因为它会在确定另一个人在哪里之后尝试定位自己...等待第一个人。

      【讨论】:

        【解决方案3】:

        在你的scrollView中添加android:layout_alignParentTop="true"并在bottomLinearLayout中删除android:layout_below="@+id/scrollView1"

        【讨论】:

          【解决方案4】:

          如果你给两个视图对方android:layout_below id,那么这个循环依赖问题就会发生。 例如

          <TextView
                  android:id="@+id/tv"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="Example Series"
                  android:layout_below="@+id/rv_qpl"/>
          
              <androidx.recyclerview.widget.RecyclerView
                  android:id="@+id/rv_qpl"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_below="@+id/tv"/>
          

          【讨论】:

            猜你喜欢
            • 2015-05-26
            • 1970-01-01
            • 2017-08-07
            • 1970-01-01
            • 1970-01-01
            • 2015-11-18
            • 2017-09-04
            • 2017-08-14
            • 2018-11-30
            相关资源
            最近更新 更多