1

既存のレイアウトを別のレイアウト ファイル (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>

その理由を知っている人はいますか?

4

1 に答える 1

1

android:id="@id/bar"に変更android:id="@+id/someId"

于 2012-04-17T07:39:43.763 に答える