0

我有一个活动,其中包含一个列表视图,该列表视图填充了来自 xml 文件的首选项,然后是另一个列表视图,该列表视图由我的数据库中的数据填充,然后是一个文本视图和一个编辑文本。

我希望屏幕上的每个元素(包括所有列表视图)都占据全部高度,并且整个屏幕都是可滚动的,但我不知道该怎么做!

下面是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:fillViewport="true" >

    <LinearLayout
        android:id="@+id/llContainer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/llPreferences"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <ListView
                android:id="@android:id/list"
                android:layout_width="fill_parent"
                    android:layout_height="wrap_content">
            </ListView>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/llPlaces"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:weightSum="1" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView"
                android:textAppearance="?android:attr/textAppearanceLarge" >
            </TextView>

            <ListView
                android:id="@+id/lstPlaces"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >
            </ListView>

            <LinearLayout
                android:id="@+id/llAddNewPlace"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <EditText
                    android:id="@+id/txtNewPlaceName"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" >
                </EditText>

                <Button
                    android:id="@+id/btnAddNewPlace"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Add New" >
                </Button>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

</ScrollView>

任何想法为什么这没有按我想要的和期望的那样执行?

谢谢,马克斯。

4

3 回答 3

0

好吧,首先,真的没有理由将您的 ListView 封装在线性布局内的线性布局内。事实上,没有理由将您的任何视图封装在两个 LinearLayout 中。试试这个,看看会发生什么:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:fillViewport="true" >

    <LinearLayout
        android:id="@+id/llContainer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
        </ListView>

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView"
            android:textAppearance="?android:attr/textAppearanceLarge" >
        </TextView>

        <ListView
            android:id="@+id/lstPlaces"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        </ListView>

        <EditText
            android:id="@+id/txtNewPlaceName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        </EditText>

        <Button
            android:id="@+id/btnAddNewPlace"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Add New" >
        </Button>

    </LinearLayout>

</ScrollView>
于 2011-12-01T21:45:41.657 回答
0

永远不要将 ListView 放在 ScrollView 中,因为没有很好的方法来区分两个嵌套的可滚​​动容器。

于 2011-12-01T21:47:01.807 回答
0

解决此问题的类似问题:

Android ScrollView 布局问题

不幸的是,看起来你不能在滚动布局中有一个列表视图。

对于感兴趣的人,现在或将来似乎可以在这里找到潜在的解决方法:

ScrollView 中的 ListView 潜在解决方法

于 2011-12-02T17:56:06.730 回答