我正在尝试在一个线性布局中滚动列表视图,但它不能正常工作。我附上一张图片以获得更多解释。 这是我的布局
<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>
我知道这不是使用listview的好方法,但我必须这样做。 谢谢你提前.Plz帮助
答案 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'