为什么android构建系统以奇怪的方式工作?

时间:2017-09-12 04:46:21

标签: android android-layout

所以我有这个xml文件,它有以下结构:

<RelativeLayout>

<ScrollView above="@id/bottom">...</ScrollView>
<LinearLayout id="@+id/bottom">...</LinearLayout>

</RelativeLayout>

我在上面的滚动视图中引用了线性布局。首先,项目成功编译,没有错误,并给出了预期的结果。但是当我清理项目时,它给出了线性布局参考的错误。 错误:(16,31)找不到与给定名称匹配的资源(位于'layout_above'且值为'@id / bottom')。

我知道,我应该将线性布局放在滚动视图上方,但为什么错误最初没有出现,

为什么会这样?

1 个答案:

答案 0 :(得分:1)

改变它

<RelativeLayout>

<LinearLayout id="@+id/bottom">...</LinearLayout>
<ScrollView above="@id/bottom">...</ScrollView>

</RelativeLayout>

<RelativeLayout>

<ScrollView above="@+id/bottom">...</ScrollView> <!-- notice the + -->
<LinearLayout id="@+id/bottom">...</LinearLayout>

</RelativeLayout>
RelativeLayout中的

,因为视图彼此相关,所以顺序并不重要。所以在你的实际xml中,你的LinearLayout定义在ScrollView&amp;因此,当你说above="@id/bottom"时,它无法找到它。所以要么交换位置要么添加&#34; +&#34;在above="@id/bottom"之前:above="@+id/bottom"