将ScrollViews布局用于Horizo​​ntalScrollView

时间:2012-06-27 20:33:45

标签: android android-listview horizontalscrollview

我想创建一种卡片布局,其卡片在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项目膨胀并添加到线性布局中。 我想平滑地进行垂直和水平滚动,没有这些限制(同时水平和垂直滚动)。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

我建议您使用ViewFlipper水平滚动效果。然后将ListView作为孩子添加到鳍状肢。使用手势左右移动。

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

ListView inside View flipper discussion 1ListView inside View Flipper Discussio 2

答案 2 :(得分:0)

我建议将你的horiziontallayout作为你在适配器中的getView()返回的根视图。这样,每一行将彼此分开滚动。如果这不能立即起作用,则可能需要为行提供setItemsCanFocus(true)以将输入提供给horizo​​ntalscrollview。