如何在Android中水平和垂直滚动ViewPager?

时间:2016-03-14 01:47:51

标签: android android-viewpager android-scrollview horizontalscrollview viewpagerindicator

我有一个ViewPager,其内容是运行时确定的。内容大小可能超过屏幕尺寸,所以我想到ViewPager在NestedScrollView(它启用垂直滚动)中,它位于Horizo​​ntalScrollView(启用水平滚动)内。这解决了适合内容的问题,但我无法滚动浏览ViewPager选项卡 - 可能ViewPager不再接收水平滚动条。

例如,在内容宽度超过屏幕宽度的情况下,我的初始滚动应首先滚动到内容边缘的末尾 - 然后应加载FragmentAdapter中的新内容。但是使用嵌套的scrollview方法,我无法从FragmentAdapter加载下一个项目。

我的代码:

<HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <android.support.v4.view.ViewPager
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

        </RelativeLayout>

    </android.support.v4.widget.NestedScrollView>
</HorizontalScrollView>

这种方法有一种替代方案。删除外部Horizo​​ntalScrollView并将ViewPager的FragmentAdapter的内容放在Horizo​​ntalScrollView中。我还没有尝试这个解决方案 - 但这会导致我更改并重新测试FragmentAdapter的所有现有布局文件。

1 个答案:

答案 0 :(得分:1)

您可以使用以下参考文献。良好的实施。

DoubleViewPager