如何防止其他视图被推出屏幕

这是XML的例子

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_margin="5dip" android:background="#FF992222"> <ScrollView android:layout_height="wrap_content" android:layout_width="fill_parent"> <LinearLayout android:layout_height="wrap_content" android:orientation="vertical" android:layout_width="fill_parent"> <TextView android:layout_width="wrap_content" android:text="TextView" android:layout_height="wrap_content" android:textSize="24dip"></TextView> </LinearLayout> </ScrollView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_margin="5dip" android:background="#FF555555"> <TextView android:layout_width="wrap_content" android:text="TextView" android:layout_height="wrap_content" android:textSize="24dip"></TextView> </LinearLayout> </LinearLayout> 

结果是这样的:

在这里输入图像说明

如果你注意到,上面的LinerLayout中的文本被包裹在LinearLayout和ScrollView中。

如果上面的内容保持添加,它会看起来像这样

在这里输入图像说明

底部Linearlayout将被推出屏幕之前,ScrollView变成活动,并使第一个内容成为可滚动的….我不希望发生这种情况…

我应该怎么做,使底部视图之前的滚动视图被推出这样的屏幕:

(这是编辑的图像,而不是由Android布局编辑器创build)

在这里输入图像说明

希望这个问题清楚。谢谢:)

Related of "如何防止其他视图被推出屏幕"

那么,如果我明白你的问题,你希望灰色的TextView保持静止,而红色的textViews可以滚动,纠正我,如果我在这里错了。 如果这就是你想要的,那么你可以使用RelativeLayout来实现。 以下是生成如下输出的代码:
http://img.androidcookie.com/android//
ListView条目是可滚动的,而button(在你的情况下,它应该是一个TextView)保持在原来的位置。

码:

 <?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"> <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/newtask" android:layout_alignParentTop="true"> </ListView> <Button android:layout_width="fill_parent" android:id="@+id/newtask" android:layout_height="wrap_content" android:text="Add New Task" android:layout_alignParentBottom="true"> </Button> </RelativeLayout> 

只需将底部button更改为一个TextView,它将匹配你想要的。

我花了很多时间才弄清楚,网上没有任何信息,但我终于明白了。 请享用!

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainlayout" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:orientation="vertical" > <LinearLayout android:id="@+id/LL" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center_vertical" android:layout_centerVertical="true" android:orientation="vertical" android:weightSum="1" > <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/TV1" android:layout_margin="5dp" android:layout_weight="1" android:fillViewport="true" > <TextView android:id="@+id/TV2" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" /> </ScrollView> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="5dp" android:layout_weight="0" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:text="TextView" android:layout_height="wrap_content" android:textSize="24dip"></TextView> </LinearLayout> </LinearLayout> 

尝试这个。 关键是在线性布局中使用layout_weight。

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ScrollView android:layout_height="0dp" android:layout_weight="1" android:layout_width="fill_parent"> .... </ScrollView> <TextView android:layout_width="fill_parent" android:text="TextView" android:layout_height="wrap_content" android:textSize="24dip"/> </LinearLayout>