我正在尝试配置三个片段:一个片段的左侧为固定宽度,一个片段的右侧为固定宽度,中间的一个将占用所有剩余空间。我搜索了一个解决方案,并遵循了我在网上找到的建议,但是,当我尝试运行该应用程序时,出现了一个错误:
找不到与给定名称匹配的资源(位于“ layout_toRightOf”,值为“ @ id / right_item_menu_fragment”)。
如果我在布局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>
最佳答案
我以前曾经遇到过这个问题,这似乎是一个前向参考问题。尝试如下重新排列相对布局,以便最后定义中间部分。
<?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>
迈克·M(Mike M)所说的也是正确的。有关详细信息,请参见this link。