我有一个ViewPager,其内容是运行时确定的。内容大小可能超过屏幕尺寸,所以我想到ViewPager在NestedScrollView(它启用垂直滚动)中,它位于HorizontalScrollView(启用水平滚动)内。这解决了适合内容的问题,但我无法滚动浏览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>
这种方法有一种替代方案。删除外部HorizontalScrollView并将ViewPager的FragmentAdapter的内容放在HorizontalScrollView中。我还没有尝试这个解决方案 - 但这会导致我更改并重新测试FragmentAdapter的所有现有布局文件。