1

我在 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“消息”是可滚动的。所以我在 ScrollView 中添加了它,但是我放了一个星号 (android:layout_above) 我得到了错误:@+id/message is not a brother in the same RelativeLayout

我该如何解决?任何帮助表示赞赏

4

5 回答 5

3

出现此错误是因为您的 TextView 的父级不是相对布局,而是 ScrollView。而是为您的 ScrollView 提供一个 id,然后使用:

 android:layout_above="ScrollView id here"
于 2013-08-31T06:51:14.603 回答
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());
于 2013-08-31T06:31:06.583 回答
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>
于 2013-08-31T06:04:37.450 回答
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>`
于 2013-08-31T06:05:14.073 回答
0

不要使用滚动视图使您的 TextView 可滚动。而是像这样使用滚动移动方法。

TextView message = (TextView) findViewById(R.id.message);
message.setMovementMethod(new ScrollingMovementMethod());
于 2013-08-31T06:08:52.733 回答