layout_below @id无效但@ + id工作

时间:2012-10-29 06:59:24

标签: android-layout

<?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:padding="20dp">

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/content">

<ImageView
android:id="@+id/idcontentline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|top"
android:src="@drawable/line"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_centerHorizontal="true"/>

<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/idcontentline"
android:layout_centerHorizontal="true"
android:scrollbarStyle="insideInset"
android:scrollbars="vertical" >

<TextView
android:id="@+id/idcontenttext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="this is a sample" />

</ScrollView>

</RelativeLayout>

</RelativeLayout>

当我使用android:layout_below =“@ + id / idcontentline”时,一切都是正确的,textview低于imageview.But当使用@id而不是@ + id时,它不起作用。

怎么了?

2 个答案:

答案 0 :(得分:3)

  

字符串开头的at符号(@)表示XML解析器应解析并扩展ID字符串的其余部分,并将其标识为ID资源。加号(+)表示这是一个新的资源名称,必须创建并添加到我们的资源中(在R.java文件中)。 Android框架提供了许多其他ID资源。引用Android资源ID时,您不需要加号,但必须添加android包命名空间。

答案 1 :(得分:0)

多次清洁项目,只是它。