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

Tek*_*Yin 9 layout android scrollview

这是示例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>
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

在此输入图像描述

如果您注意到,上层LinerLayout中的文本包含在LinearLayout和ScrollView中.

如果添加了上面的内容,它将如下所示

在此输入图像描述

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

如何在底部视图被推出屏幕之前制作Scrollview,如下所示:

(这是编辑过的图像,不是由Android Layout编辑器创建的)

在此输入图像描述

希望问题足够清楚..谢谢:)

Chr*_* M. 7

我花了很多时间才弄清楚这一点,网上没有信息,但我终于明白了.请享用!

<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>
Run Code Online (Sandbox Code Playgroud)


aro*_*ero 5

尝试这个。关键是在线性布局中使用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>
Run Code Online (Sandbox Code Playgroud)


Urb*_*ban 3

好吧,如果我清楚地理解你的问题,你希望灰色的 TextView 保持静止,而红色的 textView 可以滚动,如果我错了,请纠正我。如果这就是您想要的,那么您可以使用RelativeLayout 来实现。以下是产生如下输出的代码:
http://imageshack.us/photo/my-images/836/device20111011012652.png/
ListView 条目是可滚动的,而按钮(在您的情况下它应该是 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>  
Run Code Online (Sandbox Code Playgroud)

只需将底部按钮更改为 TextView,它就会符合您的需求。