这让我很生气。我的项目刚刚编译好了。我在其他地方做了一些小改动,现在我收到了这个错误。这里是完整的错误消息:
找不到与给定名称匹配的资源(位于' layout_above'值为' @ id / blank_view")。
这是发生错误的XML文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageButton
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/margin_right"
android:layout_above="@id/blank_view"
android:src="@drawable/button" />
<View
android:id="@+id/blank_view"
android:layout_width="match_parent"
android:layout_height="@dimen/margin_bottom"
android:layout_alignParentBottom="true" />
</RelativeLayout>
如果找不到名称为&#34; @ id / blank_view&#34;的资源怎么可能呢?当该资源在文件中正下方时
顺便说一下,我的布局是这样的原因是我希望ImageButton
与我的相对布局的底部对齐,但偏移了一个边距。出于某种原因,这两个属性(layout_alignParentBottom
和layout_marginBottom
)在同一视图中不能很好地混合。
我还应该指出,这也发生在早期,但我刚刚删除了给AndroidStudio这样一个问题的引用,而不是试图修复它。然而,这太重要了,不能那样挥之不去。
答案 0 :(得分:8)
这是因为xml以线性方式解析,而视图/对象以从上到下的顺序创建。因此,您的xml告诉视图构建器将您的ImageButton放在尚不存在的项目上方。
只需将其移到空白视图下方,错误就会消失。
答案 1 :(得分:1)
尝试将该属性添加到您的视图中:
<view
android:id="@+id/blank_view"
android:layout_width="match_parent"
android:layout_height="@dimen/margin_bottom"
android:layout_alignParentBottom="true"
android:layout_below="@id/btn"
/>
并删除:
android:layout_above="@id/blank_view"