ScrollView中的ViewPager

我需要在ScrollView有一个ViewPager但是当它在ScrollView时, ViewPager不会出现,当我不使用ScrollView时一切正常。

我已经在stackoverflow或其他网站上看到过这样的问题,并且所有这些问题都得到了解答,你必须将android:fillViewport="true"放到你的scrollview来修复问题,但这个解决方案不起作用对我来说,即使我的ScrollViewandroid:fillViewport="true"ViewPager仍然没有出现。

我想android api中的某些内容发生了变化,这个解决方案不再适用了,有没有人知道我怎么可能让ViewPager出现在ScrollView

更新:一个有效的ScrollView布局XML:

       

Solutions Collecting From Web of "ScrollView中的ViewPager"

我过去遇到过类似的问题。 View-Pager必须具有设定的高度(它不能包装内容)。 由于ViewPager加载了单独的页面,而不是一次加载,因此它不会知道’wrap-content’实际意味着什么。 将layout_height设置为fill_parent或设置dp允许ViewPager静态设置其高度,并在其他布局中做出相应的反应。

 public class YourScrollableViewPager extends ViewPager { private static final int MATCH_PARENT = 1073742592; private int currentPageNumber; private int pageCount; public YourScrollableViewPager(Context context) { super(context); prepareUI(); } public YourScrollableViewPager(Context context, AttributeSet attrs) { super(context, attrs); prepareUI(); } private void prepareUI() { setOffscreenPageLimit(pageCount); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int height = 0; if (getChildCount() != 0) { View child = getChildAt(currentPageNumber); child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); int h = child.getMeasuredHeight(); if (h > height) height = h; } heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } public void onPrevPage() { onMeasure(MATCH_PARENT, 0); } public void onNextPage() { onMeasure(MATCH_PARENT, 0); }} 

我使用"HorizontalScrollView"而不是ScrollViewfind了我的解决方案。

首先使用以下代码创建activity_main.xml ,您可以在其中定义ViewPager。

  < ?xml version="1.0" encoding="utf-8"?>    

然后创建另一个left.xml来定义HorizontalScrollView

  < ?xml version="1.0" encoding="utf-8"?>    

只需将android:fillViewport =“true”添加到滚动视图即可