我想创建一种卡片布局,其卡片在ListView
内包含HorizontalScrollableView
布局,可以水平滚动卡片。一切正常,但我有滚动问题。只有当我没有水平滚动卡片时才能垂直滚动列表视图,反之亦然。
这是主要容器:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<HorizontalScrollView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ddd" >
<LinearLayout
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:orientation="horizontal" >
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
我将listview项目膨胀并添加到线性布局中。 我想平滑地进行垂直和水平滚动,没有这些限制(同时水平和垂直滚动)。
我怎样才能做到这一点?
答案 0 :(得分:2)
看看这个,可能会帮助你实现自定义的双向滚动布局。
如果您想要任何ListView功能(如视图回收,过滤,适配器) - 事情会变得更复杂。
答案 1 :(得分:1)
我建议您使用ViewFlipper水平滚动效果。然后将ListView作为孩子添加到鳍状肢。使用手势左右移动。
ListView仍将垂直滚动,如果您无法将OnItemClickListener设置为ListView,则可以使用Gesture的SingleTap方法。
ListView inside View flipper discussion 1和ListView inside View Flipper Discussio 2
答案 2 :(得分:0)
我建议将你的horiziontallayout作为你在适配器中的getView()返回的根视图。这样,每一行将彼此分开滚动。如果这不能立即起作用,则可能需要为行提供setItemsCanFocus(true)以将输入提供给horizontalscrollview。