XML文件中的循环依赖项

时间:2014-08-23 16:16:14

标签: android

我的android xml布局文件保持渲染期间引发的异常:RelativeLayout中不存在循环依赖关系 Window>中记录了异常详细信息。显示视图>错误日志 我弄清楚为什么?这是我的代码

<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"
    tools:context="com.amandhapola.ribbit.LoginActivity"
    android:background="@drawable/background_fill" >

     <ImageView
         android:id="@+id/backgroundImage"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_alignParentLeft="true"
         android:layout_alignParentTop="true"
         android:scaleType="fitStart"
         android:src="@drawable/background" 
         android:contentDescription="@string/content_desc_background"/>
       <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_above="@+id/subtitle"
        android:layout_centerHorizontal="true"
        android:textSize="60sp"
        android:layout_marginTop="32dp"
        android:textColor="@android:color/white"
        android:textStyle="bold"
        android:text="@string/app_name" />

     <TextView
        android:id="@+id/subtitle"
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/title"
        android:layout_above="@+id/usernameField"
        android:textSize="13sp"
        android:textColor="@android:color/white"
        android:textStyle="bold"
        android:text="@string/subtitle"/>

       <EditText
        android:id="@+id/usernameField"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/passwordField"
        android:layout_below="@+id/subtitle"
        android:layout_alignParentLeft="true"
        android:ems="10"
        android:hint="@string/username_hint" />

        <EditText
        android:id="@+id/passwordField"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/usernameField"
        android:layout_above="@+id/loginButton"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="43dp"
        android:ems="10"
        android:hint="@string/password_hint"
        android:inputType="textPassword" />

        <Button
        android:id="@+id/loginButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/passwordField"
        android:layout_above="@+id/signUpText"
        android:layout_alignParentLeft="true"
        android:text="@string/login_button_label" />



    <TextView
        android:id="@+id/signUpText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:layout_marginTop="12dp"
        android:layout_centerHorizontal="true"
        android:textColor="@android:color/white"
       android:layout_below="@+id/loginButton"
        android:text="@string/sign_up_text" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

您已将自己的标题定义为字幕上方,并且字幕位于标题之下:

<TextView android:id="@+id/title" ... android:layout_above="@+id/subtitle" ... />
<TextView android:id="@+id/subtitle" ... android:layout_below="@+id/title" ... />

这是一个循环引用:要定位title,Android首先需要确定subtitle的位置。但是,要定位subtitle,首先需要确定title的位置。

您需要确保Android可以定位您的元素,而无需进入 depencendy循环。例如,将标题定位在顶部,然后将字幕定位在标题下面就可以了。