Android包括布局文件(参考ID)

时间:2012-04-17 07:35:30

标签: android android-layout

我正在尝试将现有布局包含在另一个布局文件(xml)中。为了定位这些布局,我需要给包含的布局一个id,所以我能够引用它,例如

我使用以下布局:

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

我将此布局包含在另一个布局中,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/container"
    android:background="@drawable/bg"
    >
    <include android:id="@id/bar" layout="@layout/bar"/>  

    <ScrollView 
        android:id="@+id/scrollView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/bar"
        >
        <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
        android:gravity="center">
       ...
      </LinearLayout>
   </ScrollView>
</RelativeLayout>

这个工作正常,我的ScrollView位于我的栏下方,我可以点击栏,而ScrollView不会截取点击事件。

当我尝试在不同的布局文件中执行相同操作时,它表示无法找到资源@id / bar:

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

    <include android:id="@id/bar" layout="@layout/bar"/>

    <ScrollView 
        android:id="@+id/scrollview2"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_below="@id/bar"
        >
        <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:gravity="center">
        ...
</LinearLayout>
</ScrollView>
</RelativeLayout>

有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

android:id="@id/bar"更改为android:id="@+id/someId"