RelativeLayout,无法解析id

时间:2011-07-23 00:32:01

标签: android android-layout relativelayout

我试图在RelativeLayout内布局视图,如下所示:

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

并且android无法识别此ID:

 android:layout_below="@id/bottomView"

因为我在调用之后定义了@+id/bottomView",但有时排序事项来绘制谁,我可以从代码中解决它,但是如何在XML中修复它

4 个答案:

答案 0 :(得分:7)

在定义时的布局中:

@+id/bottomView"

加号(+)表示这是一个必须创建并添加到我们资源的新资源名称(在R.java文件中)

引用Android资源ID时,您不需要加号,但必须添加android包命名空间(参考1)

所以,改变你的xml布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView 
        android:text="DownTextView" 
        android:id="@+id/upperView"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@+id/bottomView">
    </TextView>
    <TextView 
        android:text="UpTextView" 
        android:id="@id/bottomView"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content">
    </TextView>
</RelativeLayout>

参考:1 Android Layout ID Document

答案 1 :(得分:1)

我解决了它,只需在布局xml中+关键字之前添加id

答案 2 :(得分:0)

如何将俯视图放在底部视图下方,逻辑上与我不一致?

你应该这样做。在bottomview添加android:layout_below="@id/upperview"

因为底部低于某些东西。

答案 3 :(得分:0)

你需要首先创建bottomView,然后使用layout_below,因为android / java按顺序创建东西,你做了什么。希望它有所帮助。