相对布局出错。 “不是兄弟姐妹”

时间:2013-08-31 05:56:43

标签: android android-layout

我在RelativeLayout中有两个Textview,如下所示:

<RelativeLayout>
   <TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   (*) android:layout_above="@+id/message"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true" />
<ScrollView android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:layout_weight="1">
    <TextView
     android:id="@+id/message"
     android:layout_width="302dp"
     android:layout_height="wrap_content"
     android:layout_above="@+id/editText1"/>
</ScrollView>

我希望Textview id'd“message”可以滚动。所以我在ScrollView中添加了它,但我放了一个星(android:layout_above)我得到错误:@ + id / message不是同一RelativeLayout中的兄弟

我该如何解决这个问题?任何帮助表示赞赏

5 个答案:

答案 0 :(得分:3)

首先,您必须从

中删除“+”

这个

android:layout_above="@+id/message"

android:layout_above="@id/message"

使用TextView的滚动方法而不是scrollview

<TextView
 android:scrollbars="vertical" // Add this to your TextView in .xml file
 android:maxLines="ANY_INTEGER" // also add the maximum line 
 android:id="@+id/message"
 android:layout_width="302dp"
 android:layout_height="wrap_content"
 android:layout_above="@id/editText1"/>

然后在.java文件中为上面的textview添加以下方法。

TextView message = (TextView) findViewById(R.id.message);
message.setMovementMethod(new ScrollingMovementMethod());

答案 1 :(得分:3)

它给出了这个错误,因为TextView的父级不是相对布局,而是ScrollView。而是给你的ScrollView一个id,然后使用:

 android:layout_above="ScrollView id here"

答案 2 :(得分:0)

为您的ScrollView提供id并相对于ScrollView对齐

<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   (*) android:layout_above="@+id/scroll"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true" />
<ScrollView android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:layout_weight="1"
     android:id="@+id/scroll">
    <TextView
     android:id="@+id/message"
     android:layout_width="302dp"
     android:layout_height="wrap_content"
     android:layout_above="@+id/editText1"/>
</ScrollView>

答案 3 :(得分:0)

将TextView id移动到ScrollView,以便above引用兄弟。

 <RelativeLayout> <TextView android:id="@+id/title"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content" (*)   
 android:layout_above="@+id/message"
 android:layout_alignParentLeft="true"
 android:layout_alignParentRight="true " />       
 <ScrollView   
 android:layout_width="wrap_content"
 android:id="@+id/message
 android:layout_height="wrap_content"    
 android:layout_weight="1"> <TextView  
 android:id="@+id/message"    
 android:layout_width="302dp"/> 
 </ScrollView>`

答案 4 :(得分:0)

不要使用scrollview来使TextView Scrollable。而是像这样使用滚动运动方法。

TextView message = (TextView) findViewById(R.id.message);
message.setMovementMethod(new ScrollingMovementMethod());