既存のレイアウトを別のレイアウト ファイル (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>
その理由を知っている人はいますか?