Android Scrollview不包装子

时间:2015-12-14 04:37:56

标签: java android scrollview

这是布局xml文件:

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

    <LinearLayout
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="factory.Settings"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:orientation="vertical">

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/lblShopID"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/ShopId"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText
                android:id="@+id/txtShopID"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="text"
                android:layout_weight="1" />

        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/lblShopname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/lblShopID"
                android:layout_marginTop="36dp"
                android:text="@string/ShopName"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <Spinner
                android:id="@+id/spinShopName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/lblShopname"
                android:layout_toRightOf="@+id/lblShopname" />
        </LinearLayout>

        <Button
            android:id="@+id/btnSaveChanges"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/spinShopName"
            android:layout_marginTop="22dp"
            android:onClick="saveData"
            android:text="Save Changes" />

        <TextView
            android:id="@+id/txtChangePassword"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_centerVertical="true"
            android:text="@string/ChangePassword"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_marginTop="30px" />

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="30px">

            <TextView
                android:id="@+id/lblOldPassword"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/OldPassword"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText
                android:id="@+id/txtOldPassword"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPassword" />
        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/lblNewPassword"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/NewPassword"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText
                android:id="@+id/txtNewPassword"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPassword" />
        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/lblRetypePassword"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/RetypePassword"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText
                android:id="@+id/txtRetypePassword"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPassword" />
        </LinearLayout>

        <Button
            android:id="@+id/btnChangePassword"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="changePassword"
            android:text="Change Password" />

        <ListView
            android:id="@+id/lstUsers"
            android:layout_width="340dp"
            android:layout_height="wrap_content" />
    </LinearLayout>
</ScrollView>

这是预期的输出: enter image description here

预期的输出是:我在lstUsers中有一些项目,并且没有足够的空间来显示所有用户,所以我想在布局中添加一个滚动视图,让用户向下滚动。 / p>

但问题是:scrollview根本没有包装任何控件,结果是:

enter image description here

如您所见,scrollview无法包装lstUser

布局文件有什么问题吗?

2 个答案:

答案 0 :(得分:1)

我不认为您可以在滚动视图中放置列表视图。 Listview实现了自己的滚动条,所以它不喜欢在滚动视图中。看一下这个链接

How can I put a ListView into a ScrollView without it collapsing?

答案 1 :(得分:1)

Scrollview和Listview彼此无法正常工作。

我建议你做的是使用者&#39; Listview布局文件的主要内容。

使用列表视图上方的视图创建单独的布局文件。

然后膨胀此布局文件并将其作为标题视图添加到列表视图。