我正在尝试配置三个片段:一个片段在左侧具有固定宽度,一个片段在右侧具有固定宽度,一个片段在中间部分将占用所有剩余空间。我搜索了一个解决方案,并按照我在网上找到的建议,但是当我尝试运行应用程序时,我收到了一个错误:
找不到与给定名称匹配的资源(位于'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>
答案 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。