6

我想创建一种卡片布局,其中包含可以水平滚动卡片的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>

我膨胀并将列表视图项目添加到线性布局。我希望在没有这些限制的情况下平滑地进行垂直和水平滚动(同时水平和垂直滚动)。

我怎样才能做到这一点?

4

3 回答 3

2

看看这个,可能会帮助您实现自定义的双向滚动布局。

https://github.com/ened/Android-Tiling-ScrollView/blob/master/src/asia/ivity/android/tiledscrollview/TwoDScrollView.java

如果您想要任何 ListView 功能(如视图回收、过滤、适配器) - 事情会变得更加复杂。

于 2012-07-02T19:43:30.203 回答
1

我建议您使用 ViewFlipper 来提供水平滚动效果。然后将 ListView 添加到孩子的脚蹼。使用手势左右移动。

ListView 仍将垂直滚动,如果您无法将 OnItemClickListener 设置为 ListView,那么您可以使用 Gesture 的 SingleTap 方法。

View Flipper讨论 1中的 ListView和View Flipper 讨论 2 中的 ListView

于 2012-07-06T13:46:10.803 回答
0

我建议将您的 horiziontallayout 作为您在适配器的 getView() 中返回的根视图。这样每一行将彼此分开滚动。如果这不能立即起作用,您可能必须为您的行设置 setItemsCanFocus(true) 才能将输入提供给您的水平滚动视图。

于 2012-06-27T20:44:39.143 回答