找不到与给定名称匹配的资源(在'layout_toRightOf'中,值为'@id / right_item_menu_fragment')

时间:2016-05-16 15:51:47

标签: android android-layout

我正在尝试配置三个片段:一个片段在左侧具有固定宽度,一个片段在右侧具有固定宽度,一个片段在中间部分将占用所有剩余空间。我搜索了一个解决方案,并按照我在网上找到的建议,但是当我尝试运行应用程序时,我收到了一个错误:

找不到与给定名称匹配的资源(位于'layout_toRightOf'且值为'@id / right_item_menu_fragment')。

如果我在layout id ='right_item_menu_fragment'之后移动RelativeLayout id ='canvas_fragment',那么安装成功(没有上述错误),但屏幕上看不到'canvas_fragment'。

我搜索了这个错误,并且有不同的原因可以解决它,但它们都不适用于我的情况。许多人在使用Eclipse时都会出现此错误,但我使用的是Android studio。

如果有人能够指出我做错了什么,那么将非常感谢帮助。

这是我的布局:

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
    
android:id="@+id/canvas_layout"
     
android:layout_width="match_parent"
      
android:layout_height="match_parent">
    
       

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
      
    android:id="@+id/left_item_menu_fragment"
     
     android:layout_width="@dimen/item_menu_width"
    
     android:layout_height="match_parent"
     
     android:layout_alignParentLeft = "true"
    
    android:background="#cccccc">
    
     

 </RelativeLayout>
    
    

 <RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
     
        android:id="@+id/canvas_fragment"
     
        android:orientation="vertical"
     
        android:layout_height="match_parent"
    
        android:layout_width="match_parent"

            android:layout_toLeftOf = "@+id/left_item_menu_fragment"
      
        android:layout_toRightOf = "@id/right_item_menu_fragment"
     
        android:background="#000000" >
    
      

</RelativeLayout>
    
    
     

<RelativeLayout 
       xmlns:android="http://schemas.android.com/apk/res/android"
      
       android:id="@+id/right_item_menu_fragment"
      
       android:layout_width="@dimen/item_menu_width"
     
        android:layout_height="match_parent"
    
         android:layout_alignParentRight = "true"
     
        android:background="#cccccc">
    
    

</RelativeLayout>

    
    
    
    
    </RelativeLayout>

1 个答案:

答案 0 :(得分:1)

我之前遇到过此问题,似乎是一个前向参考问题。尝试按如下方式重新排列相对布局,以便最后定义中间部分。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/canvas_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<RelativeLayout
    android:id="@+id/left_item_menu_fragment"
    android:layout_width="@dimen/item_menu_width"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:background="#cccccc">
</RelativeLayout>

<RelativeLayout
    android:id="@+id/right_item_menu_fragment"
    android:layout_width="@dimen/item_menu_width"
    android:layout_height="match_parent"
    android:layout_alignParentRight="true"
    android:background="#cccccc">

</RelativeLayout>

<RelativeLayout
    android:id="@+id/canvas_fragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    <!-- layout_toLeftOf and layout_toRightOf were backwards. This is correct.-->
    android:layout_toLeftOf="@id/right_item_menu_fragment"
    android:layout_toRightOf="@id/left_item_menu_fragment"
    android:background="#000000"
    android:orientation="vertical">
</RelativeLayout>

Mike M所说的也是如此。有关详细信息,请参阅this link