【发布时间】:2016-03-14 01:47:50
【问题描述】:
我有一个 ViewPager,它的内容是在运行时确定的。内容大小可能大于屏幕尺寸,所以我想将 ViewPager 放在一个 NestedScrollView(它启用垂直滚动)内,它位于一个 HorizontalScrollView(它启用水平滚动)内。这解决了适合内容的问题,但我无法滚动 ViewPager 选项卡 - 可能 ViewPager 不再接收水平滚动。
例如,在内容宽度大于屏幕宽度的情况下,我的初始滚动应该首先滚动到内容边缘的末尾 - 然后应该加载来自 FragmentAdapter 的新内容。但是使用嵌套滚动视图方法,我无法从 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 的所有现有布局文件。
【问题讨论】:
-
使用 ViewPager 进行水平滚动。并使用 RecyclerView 在 viewpager 内容中实现垂直滚动。
-
如果viewpage内容的宽高超过屏幕尺寸怎么办?
标签: android android-viewpager android-scrollview horizontalscrollview viewpagerindicator