为什么滚动视图下面有额外的空间?

时间:2011-11-24 05:03:34

标签: android android-layout scrollview

我有一个滚动视图,我想填充整个屏幕,我有基础LinearLayout,然后在ScrollView内,然后在里面包含一个LinearLayout几个文本字段和标签。我在API级别8中运行。我在模拟器上最终得到的是:

The bottom of my emulator

所以ScrollView应该一直到底,但我无法弄清楚是什么导致它不占用屏幕上的所有空间?有人有什么建议吗?

下面是我的布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <ScrollView
        android:layout_width="match_parent" 
        android:layout_height="match_parent">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
            <TextView 
                android:layout_height="wrap_content" 
                android:id="@+id/textView1" 
                android:text="@string/create_account_header" 
                android:textAppearance="?android:attr/textAppearanceLarge" 
                android:layout_width="wrap_content" android:textStyle="bold">
            </TextView>
            <TextView android:layout_height="wrap_content" android:id="@+id/textView2" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="@string/enter_email"></TextView>
            <EditText android:inputType="textEmailAddress" android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/emailAddress"></EditText>
            <TextView android:layout_height="wrap_content" android:id="@+id/textView3" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="Email Address Again:"></TextView>
            <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="textEmailAddress" android:id="@+id/emailAddressConfirmation">
                <requestFocus></requestFocus>
            </EditText>
            <TextView android:layout_height="wrap_content" android:id="@+id/textView6" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="Username:"></TextView>
            <EditText android:inputType="textPersonName" android:layout_height="wrap_content" android:id="@+id/editText1" android:layout_width="match_parent"></EditText>
            <TextView android:layout_height="wrap_content" android:id="@+id/textView4" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="Password:"></TextView>
            <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="textPassword" android:id="@+id/password"></EditText>
            <TextView android:layout_height="wrap_content" android:id="@+id/textView5" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="Confirm Password:"></TextView>
            <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="textPassword" android:id="@+id/passwordConfirmation"></EditText>
            <ImageButton android:src="@drawable/generic_image" android:layout_width="wrap_content" android:id="@+id/imageButton1" android:layout_height="wrap_content"></ImageButton>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

3 个答案:

答案 0 :(得分:4)

您不需要在LinearLayout中使用ScrollView,将其删除并将ScrollView作为父容器。

试试这个:

<?xml version="1.0" encoding="utf-8"?>
    <ScrollView
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
            <TextView 
                android:layout_height="wrap_content" 
                android:id="@+id/textView1" 
                android:text="@string/create_account_header" 
                android:textAppearance="?android:attr/textAppearanceLarge" 
                android:layout_width="wrap_content" android:textStyle="bold">
            </TextView>
            <TextView android:layout_height="wrap_content" android:id="@+id/textView2" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="@string/enter_email"></TextView>
            <EditText android:inputType="textEmailAddress" android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/emailAddress"></EditText>
            <TextView android:layout_height="wrap_content" android:id="@+id/textView3" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="Email Address Again:"></TextView>
            <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="textEmailAddress" android:id="@+id/emailAddressConfirmation">
                <requestFocus></requestFocus>
            </EditText>
            <TextView android:layout_height="wrap_content" android:id="@+id/textView6" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="Username:"></TextView>
            <EditText android:inputType="textPersonName" android:layout_height="wrap_content" android:id="@+id/editText1" android:layout_width="match_parent"></EditText>
            <TextView android:layout_height="wrap_content" android:id="@+id/textView4" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="Password:"></TextView>
            <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="textPassword" android:id="@+id/password"></EditText>
            <TextView android:layout_height="wrap_content" android:id="@+id/textView5" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:text="Confirm Password:"></TextView>
            <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="textPassword" android:id="@+id/passwordConfirmation"></EditText>
            <ImageButton android:src="@drawable/generic_image" android:layout_width="wrap_content" android:id="@+id/imageButton1" android:layout_height="wrap_content"></ImageButton>
        </LinearLayout>
</ScrollView>

答案 1 :(得分:2)

好的,所以我将模拟器设置为缩放到75%大小,当我关闭它时,问题就消失了......所以我认为它可能是模拟器问题。

答案 2 :(得分:0)

尝试将match_parent更改为wrap_content或fill_parent。它可能会解决您的问题。