当前位置: 首页 > 知识库问答 >
问题:

android中的嵌套viewpager问题

宫俊远
2023-03-14

我有一个垂直的viewpager在一个水平的viewpager。在horzontal viewpager I的第二个片段中,添加了垂直viewpager。垂直viewpager包含有图像的片段,所以当片段对用户可见时,我必须开始动画图像,因为使用了setUserVisibleHint。但是当移动到水平viewpager的第二个片段时,不会调用垂直viewpager内部片段的setUserVisibleHint。我试过所有的方法,oncreate,onCreateView..但是没有一种方法对我有效。我被困在这里了,请帮帮我

共有1个答案

熊俊人
2023-03-14

老问题,但我想到了这个,我想我可以帮助像我这样的人在未来。当您有一个包含(外部)片段的外部viewpager时,该viewpager本身也包含(内部)片段的内部viewpager时,就会出现问题。当您在外部片段之间移动时,不会调用显示在内部viewpager中的当前片段的setUserVisibleHint。我正在使用FragmentStatePagerAdaptor来控制我的ViewPagers。

解决此问题的方法是对FragmentStatePagerAdaptor进行子类化,以公开主片段并提供一个setUserVisibleHint方法:

public class CustomPagerAdaptor extends FragmentStatePagerAdaptor {
    private Fragment primary;

    @Override
    public void setPrimaryItem(ViewGroup container, int position, Object object) {
        super.setPrimaryItem(container, position, object);
        primary = (Fragment)object;
    }

    public void setUserVisibleHint(boolean isVisible) {
        if (primary != null){
            primary.setUserVisibleHint(isVisible);
        }
    }
}

然后在外部片段中通过以下步骤传递setUserVisibleHint:

@Override
public void setUserVisibleHint(boolean isVisible) {
    super.setUserVisibleHint(isVisible);
    if (mAdaptor != null) mAdaptor.setUserVisibleHint(isVisible);
}
 类似资料:
  • 我需要创建一个像谷歌报摊这样的界面,它是一种折叠标题(垂直滚动)上的ViewPenger(水平滚动)。我的要求之一是使用在Google IO 2015上展示的新设计支持库。(http://android-developers.blogspot.ca/2015/05/android-design-support-library.html) 基于克里斯·贝恩斯(https://github.com/c

  • 我正在编写一个使用嵌套ViewPager的应用程序。每个父ViewPager包含7个子ViewPager。 对于第一个父视图,它可以正常工作,但当它到达下一页时,它在子视图页面的位置显示为空白。 如果使用嵌套视图寻呼机是可行的,这里有什么建议吗?如果是的话,我怎么能避免这个案子呢? 父ViewPager布局与子片段相同: 这是我在父ViewPager片段中实现的子ViewPager适配器:

  • 根据谷歌的文档: 现在可以在片段中嵌入片段。这对于各种情况都很有用,在这些情况下,您需要将动态和可重用的UI组件放置到本身是动态和可重用的UI组件中。例如,如果使用ViewPager创建左右滑动并占用大部分屏幕空间的片段,现在可以将片段插入每个片段页面。要嵌套片段,只需对要添加片段的片段调用getChildFragmentManager()。这将返回一个FragmentManager,您可以像通常

  • 问题内容: 我实现了带有ViewPager和TabsAdapter的ActionBarSherlock。它运作良好,但是现在我试图从另一个表中的“标签1”中加载的框架中“推送”。 该行为应类似于: 我的应用程序中有3个选项卡,启动时会看到第一个选项卡,其中有一个带有按钮的片段 按下第一个选项卡上的按钮,应替换第一个选项卡上的片段,并显示另一个片段 我试图实现这一点,但是在更换时有一个黑色的片段。

  • 我有一个奇怪的UI问题。简而言之,我在片段中有一个ViewPager(我们称它为“a”)。到目前为止,在ViewPager中显示片段没有问题。 当我按下后退按钮时,问题出现了。后退按钮弹出片段A并返回到上一个片段,但是在这个转换过程中,ViewPager的内容被完全屏蔽。 这很明显,因为我有过渡动画。我不知道为什么会这样。很明显,这与嵌套片段有关,因为这只发生在这个特定的屏幕上,而这个屏幕是唯一有

  • 问题内容: 我正在尝试解析这种结构:(它使我发疯,并且我尝试了我能想到的一切。但是我不是很有经验) “ topDrop”就像文件名吗?player是一个JSONArray,包含5个播放器JSONObject。但是在JSON术语中,最重要的是什么。我在JSON验证程序上签出有效的凭证,我需要这样的凭证: topDrop作为JSONObject Player,作为JSONArray,并循环遍历数组中的