zoukankan      html  css  js  c++  java
  • java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/ItemIntr"
        android:layout_toRightOf="@+id/ItemImage"
        android:layout_below="@+id/ItemTitle"
        android:layout_above="@+id/ItemText"
        android:textSize="20sp"/>

    出现错误java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout
    经查找发现,是相对布局不支持这种依赖方式(为了清晰,我仅列出了出错的控件,控件间的关系间文末附上的正确代码)

    于是,将android:layout_above="@+id/ItemText"删掉,程序正确运行

    但是,将 android:layout_below="@+id/ItemTitle"删掉,程序依旧报此错误。

    思考了一下,所谓“依赖循环”:

    声明A的时候:A在B上面

    声明B的时候:B在A下面

    这就造成了所谓循环依赖,计算机无法识别你的布局要求,导致程序出现错误。

    解释程序不报错,循环依赖是没必要的,同时也会使程序变得非常复杂,所以在以后自己开发程序的时候一定要注意这一点。

    下面是正确的代码:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="fill_parent" android:layout_width="fill_parent">
    <ImageView
        android:layout_alignParentLeft="true" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:id="@+id/ItemImage"/>
    <TextView
        android:id="@+id/ItemTitle"
        android:layout_toRightOf="@+id/ItemImage"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:textSize="20sp"/>
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/ItemIntr"
        android:layout_toRightOf="@+id/ItemImage"
        android:layout_below="@+id/ItemTitle"
        android:textSize="20sp"/>
    <TextView
        android:id="@+id/ItemText"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_toRightOf="@+id/ItemImage"
        android:layout_below="@+id/ItemIntr"/>
     </RelativeLayout>
  • 相关阅读:
    HDMI介绍与流程
    HDMI热插拔检测原理
    在AES标准规范中,分组长度、密钥长度的关系
    WORD-每5行添加一个行号
    FreeRTOS 调试方法(printf---打印任务执行情况)
    SELinux深入理解
    一文彻底明白linux中的selinux到底是什么
    云锵投资 2020 年 06 月简报
    ubuntu16.04 安装opencv-2.4.9
    Windows高DPI系列控件(二)
  • 原文地址:https://www.cnblogs.com/yueyanglou/p/4377806.html
Copyright © 2011-2022 走看看