Android模拟器不会向下滚动

时间:2011-04-28 08:27:42

标签: android android-layout scroll tablelayout android-linearlayout

我正在创建一个布局,如下所示,当我在AVD中模拟它时。它不会向下滚动以查看折叠下方的内容。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_height="wrap_content"
    android:layout_width="wrap_content">

    <TextView android:text="@string/UserFormWelcome"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:textSize="20px" android:gravity="center" />

    <TextView android:text="@string/name" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:textStyle="bold"
        android:paddingTop="20px" android:paddingLeft="10px" />


    <TableLayout android:layout_height="wrap_content"
        android:layout_width="wrap_content">

        <TableRow android:layout_height="wrap_content"
            android:layout_width="match_parent" android:paddingTop="20px">

            <TextView android:text="@string/firstname"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:width="100px" android:paddingLeft="10px" />

            <EditText android:id="@+id/LastName" android:width="200px"
                android:layout_width="fill_parent" android:layout_height="wrap_content" />

        </TableRow>

        <TableRow android:layout_height="wrap_content"
            android:layout_width="match_parent">

            <TextView android:text="@string/lastname"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:paddingLeft="10px" />

            <EditText android:id="@+id/LastName" android:width="200px"
                android:layout_width="fill_parent" android:layout_height="wrap_content" />

        </TableRow>

    </TableLayout>


    <TextView android:text="@string/dob" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:textStyle="bold"
        android:paddingTop="20px" android:paddingLeft="10px" />

    <TableLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:stretchColumns="3"
        android:paddingTop="20px" android:paddingLeft="10px">
        <TableRow>
            <TextView android:text="@string/date" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:layout_column="0" />

            <TextView android:text="@string/month" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:layout_column="1" />

            <TextView android:text="@string/year" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:layout_column="2" />
        </TableRow>
        <TableRow>
            <Spinner android:id="@+id/spinnerDate" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:layout_column="0" />

            <Spinner android:id="@+id/spinnerMonth" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:layout_column="1" />

            <Spinner android:id="@+id/spinnerYear" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:layout_column="2" />
        </TableRow>


    </TableLayout>

    <LinearLayout android:id="@+id/linearLayout1"
        android:orientation="vertical" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:paddingLeft="10px">

        <TextView android:text="@string/sex" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:textStyle="bold"
            android:paddingTop="20px" />

        <RadioGroup android:id="@+id/radioGroup1"
            android:orientation="horizontal" android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <RadioButton android:text="Male" android:id="@+id/rdbMale"
                android:layout_height="wrap_content" android:layout_width="wrap_content"
                android:paddingRight="20px" android:checked="true" />
            <RadioButton android:text="Female" android:id="@+id/rdbFemale"
                android:layout_height="wrap_content" android:layout_width="wrap_content" />
        </RadioGroup>

    </LinearLayout>


    <LinearLayout android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:paddingLeft="10px">

        <TextView android:text="@string/city" android:id="@+id/textView3"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:textStyle="bold" android:paddingTop="20px"
            android:paddingBottom="10px" />

        <Spinner android:id="@+id/citySpiner" android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </Spinner>
    </LinearLayout>

</LinearLayout>

enter image description here

1 个答案:

答案 0 :(得分:19)

您应该将您要布局的部分/部分包裹到ScrollView

e.g。您可以将您的布局重写为:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <LinearLayout android:orientation="vertical"
        android:layout_height="wrap_content" android:layout_width="wrap_content">
        <TextView [...]
        [...] 
    </LinearLayout>
</ScrollView>

因此您的根标记为ScrollView,您只需粘贴当前的布局即可 您只需要从LinearLayout中删除命名空间声明,并在ScrollView中声明它。

ScrollView API Docs可能会有所帮助,当然还有Romain Guy's "ScrollView's Handy tricks"