在一个LinearLayout中滚动两个listview

时间:2015-11-21 07:05:34

标签: android android-layout android-listview android-xml android-scrollview

我正在尝试在一个线性布局中滚动列表视图,但它不能正常工作。我附上一张图片以获得更多解释。 这是我的布局

 <android.support.v7.widget.CardView
            android:id="@+id/card"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:clickable="false"
            app:cardBackgroundColor="@android:color/white"
            app:cardElevation="2dp"
            app:cardPreventCornerOverlap="false"
            app:cardUseCompatPadding="false">

            <ScrollView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:orientation="vertical">

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

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

                        />


                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="0dip"
                        android:layout_weight="1"
                        android:gravity="center|bottom"
                        android:orientation="vertical">

                        <Button
                            android:id="@+id/findSelected"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal|center"
                            android:background="@drawable/flat_selector_green"
                            android:text="Next"
                            android:textColor="@android:color/white" />
                    </LinearLayout>

                </LinearLayout>
            </ScrollView>


        </android.support.v7.widget.CardView>

图片说明enter image description here

我知道这不是使用listview的好方法,但我必须这样做。 谢谢你提前.Plz帮助

2 个答案:

答案 0 :(得分:0)

只需从xml代码中删除ScrollView,因为ListView有自己的Scroll并不需要ScrollView。然后代码可以按你的意愿运行。显示第一个ListView的每个项目后,将显示第二个列表。

答案 1 :(得分:0)

  

根据android docmentation

你永远不应该使用带有ListView的ScrollView,因为ListView负责自己的垂直滚动。最重要的是,这样做会使ListView中的所有重要优化都无法处理大型列表,因为它有效地强制ListView显示其整个项目列表以填充ScrollView提供的无限容器。

首先您将用户卡视图作为顶级父级,看起来您将使用它作为列表视图的子项,因为我猜,如果我的猜测是正确的,那么使用两个列表视图作为子项是不明智的。

第二在任何情况下,您都希望在同一视图中使用两个listview,建议使用view(TextView,...等)将它们分开。

解决方案

1-删除滚动,因为它没用。

2-为列表视图添加权重,因为案例中的换行内容意味着整个视图。

3-建议添加视图以分隔列表。

'10'