ScrollView中的ViewPager

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

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

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

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

       

  • android棒棒糖scrollview边缘效果颜色
  • 滚动图库可启用按下状态,并从子项目中删除点击侦听器
  • ScrollView内容更新
  • 如何设置选定的选项卡必须在中间
  • 我可以创build一个像这样的嵌套滚动布局吗?
  • Webview在滚动查看
  • Android ScrollView拒绝滚动到底部
  • 我怎么知道scrollview已滚动到底部?
  • 我过去遇到过类似的问题。 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”添加到滚动视图即可