Android scrollview中的viewpager使片段在应该显示时不显示

Android scrollview中的viewpager使片段在应该显示时不显示,android,android-fragments,android-viewpager,scrollview,Android,Android Fragments,Android Viewpager,Scrollview,我知道有很多关于ScrollView中ViewPager的情况的问题,但我还没有看到一个问题描述我所面临的情况 问题是,当我没有ScrollView时,我的viewPager工作正常,如图所示。 如果我只为ViewPager下面的元素放置ScrollView,我也可以工作,但我不希望出现这种行为 当我添加ScrollView时,我可以向上和向下滚动,也可以向左和向右滑动(为此,我使用),但随后图像被加载但不显示,如下图所示 我发现,如果,例如,我有四个图像,我在第一个位置看到第一个图像,我

我知道有很多关于ScrollView中ViewPager的情况的问题,但我还没有看到一个问题描述我所面临的情况

问题是,当我没有ScrollView时,我的viewPager工作正常,如图所示。

如果我只为ViewPager下面的元素放置ScrollView,我也可以工作,但我不希望出现这种行为

当我添加ScrollView时,我可以向上和向下滚动,也可以向左和向右滑动(为此,我使用),但随后图像被加载但不显示,如下图所示

我发现,如果,例如,我有四个图像,我在第一个位置看到第一个图像,我可以向右滑动两次(第三个位置),我什么也看不到,但是当我向左滑动一次(第二个位置),我就可以看到第二个图像

不完全确定它是否相关,但是getCount方法似乎变得非常疯狂,并且不断被调用

XML



我尝试使用不同类型的自定义滚动视图,但问题仍然存在。我正在用Nexus4和安卓4.4测试它,AlvaroSantisteban很高兴我能帮上忙。我自己也在挣扎。这一切都可以归结为理解布局是如何工作的,更具体地说是理解包装内容和匹配父项。 这是最初的解决方案:


您的ViewPager应该具有固定的高度,因为它位于滚动视图中。

您可以使用此方法设置代码中元素的宽度或高度

      private static int GetActualDIPValue(Activity activity, int PX)
  {

        Resources r = activity.getResources();

        int actualDIP = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,PX, r.getDisplayMetrics());

        return actualDIP;
  }

您的ViewPager应该有一个固定的高度,考虑到它在滚动视图中,是这样吗?这对我来说太可怕了,我需要更改几件事:(@bogdan今天我有时间尝试,你是对的。我必须对我的代码进行很多更改,但这与问题无关。如果你想发布答案,我会将其标记为已接受。谢谢!:)检查这里的答案:@AlvaroSantisteban如何解决此问题?同样面临同样的问题,我已经设置了与家长匹配的viewpagers高度,也尝试了wrap内容,但没有任何效果。我仍然不能很好地处理整个问题,因为不应该使用固定的大小,对吗?而且,在我的例子中,我希望有一个在运行时设置的高度,用这种方法,我不能有它。你有什么想法或相关代码吗?非常感谢!这是帮助me@bodgan如何解决这个问题?同样面对同样的问题,我已经将viewpagers的高度设置为与父对象匹配,并尝试使用wrap\u内容,但什么都没有works@Erum我能看看你的布局吗?@Erum链接无效,对不起
      private static int GetActualDIPValue(Activity activity, int PX)
  {

        Resources r = activity.getResources();

        int actualDIP = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,PX, r.getDisplayMetrics());

        return actualDIP;
  }