Android 无法识别包含文件中的 ID
Android does not recognise ids from an included file
我正在制作一个 Android 应用程序,我需要在其中包含 header 和页脚。为了使 xml 的创建更容易,我添加了 header 和来自另一个 xml 的页脚。
<!-- HEADER -->
<include layout="@layout/header" />
<!-- FOOTER -->
<include layout="@layout/footer" />
问题是我想使用 android:layout_below 和 android:layout_above 来保证内容位于两个元素的中间,但是当我尝试调用这些元素的 id 时:
android:layout_below="@id/header"
android:layout_above="@id/footer"
无法识别它们:
error: Error: No resource found that matches the given name (at 'layout_above' with value '@id/footer').
相反,它在预览中有效。我想知道有什么问题,或者是否有其他选择可以确保内容在他的位置。
谢谢!
P.S.:这是header代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:textColor="#FFF"
android:background="@color/color_cabecera"
android:gravity="center" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:src="@drawable/logo100x80" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/fav_abridores"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/abridores_guardados" />
<ImageButton
android:id="@+id/fav_consejos"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/consejos_guardados" />
</LinearLayout>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_margin="5dp"
android:textColor="#FFF"
android:text="@string/app_name"
android:textSize="20sp" />
</RelativeLayout>
这是因为您的include
标签没有id。我想你已经在 header.xml
中声明了 android:id="@+id/header"
,但你不能将它用作 RelativeLayout
中的锚点 ID
<include layout="@layout/header"
android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
我正在制作一个 Android 应用程序,我需要在其中包含 header 和页脚。为了使 xml 的创建更容易,我添加了 header 和来自另一个 xml 的页脚。
<!-- HEADER -->
<include layout="@layout/header" />
<!-- FOOTER -->
<include layout="@layout/footer" />
问题是我想使用 android:layout_below 和 android:layout_above 来保证内容位于两个元素的中间,但是当我尝试调用这些元素的 id 时:
android:layout_below="@id/header"
android:layout_above="@id/footer"
无法识别它们:
error: Error: No resource found that matches the given name (at 'layout_above' with value '@id/footer').
相反,它在预览中有效。我想知道有什么问题,或者是否有其他选择可以确保内容在他的位置。
谢谢!
P.S.:这是header代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:textColor="#FFF"
android:background="@color/color_cabecera"
android:gravity="center" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:src="@drawable/logo100x80" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/fav_abridores"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/abridores_guardados" />
<ImageButton
android:id="@+id/fav_consejos"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/consejos_guardados" />
</LinearLayout>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_margin="5dp"
android:textColor="#FFF"
android:text="@string/app_name"
android:textSize="20sp" />
</RelativeLayout>
这是因为您的include
标签没有id。我想你已经在 header.xml
中声明了 android:id="@+id/header"
,但你不能将它用作 RelativeLayout
<include layout="@layout/header"
android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>