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

重置ViewPager在片段中的当前项位置

仉姚石
2023-03-14

我有一个父ViewPager,我在其中传递了FragmentStatePagerAdapter。现在片段中有另一个子ViewPager在父ViewPager中。因此,当我尝试对父ViewPager的适配器进行notifyDataSetChanged时,将重新创建所有片段,但子ViewPager的当前项位置仍然与重新创建片段的子ViewPager的位置之前相同。

那么,如何重置子viewpager当前的项目位置呢?

共有1个答案

终育
2023-03-14

当前项由viewpager跟踪,而不是适配器跟踪。因此,无论您在哪里调用NotifyDataSetChanged(),都需要添加一些代码,如ViewPager.SetCurrentItem(0)

 类似资料:
  • 我使用来显示几个片段,在我的上也有。我需要更改中的文本,这取决于当前在中选择的片段。我遇到的问题是:有一些缓存机制,它在片段对用户真正可见之前对它们进行实例化,例如,当我在中选择第二个页面时,也创建了第三个页面的片段。更重要的是,我不能确定片断内部是现在可见的片断还是它只是由创建的,但对用户来说并不是真的可见的。我尝试使用来实现这一目的,但对我来说,对它所做的更改速度太慢(页面滚动,然后我的已经更

  • 下面是我的代码,它有,每个片断类嵌入了上的3个选项卡。我有菜单选项。如所示,通过选择一个选项,我需要更新当前可见的片段。要更新它,我必须调用fragment类中的一个方法。有人能建议一下如何调用那个方法吗? 假设下面是我要调用的具有方法的片段类:

  • 我所拥有的 我不能使用onResume(),因为左边和右边的片段已经创建了。我不能使用setUserVisibilityHint(),因为它是在onCreateView()之前调用的,所以视图还没有准备好。 那么,当某个特定片段对用户可见时,应该采用什么方法来动画视图呢?

  • 我需要将ViewPager放置在一个片段内部,但我有两个片段,片段1是我的菜单,片段2我想用作ViewPagerIndicator。 但一个碎片不能再有另一个碎片...我该怎么做呢?

  • 我在一个详细视图中使用ViewPager和FragmentPagerAdapter。这意味着我有一个项目列表,一个屏幕显示单个项目的细节。但用户可以左右滑动来浏览所有项目。这遵循了谷歌滑动视图的指导方针。 但是我想知道一件事。在ListView中,每一行的视图都会被重用。一旦一行从屏幕上滚动出来,它就会被重用为绑定到ListView的适配器的getView方法的转换器视图参数。但是这种重用行为似乎

  • 在我的应用程序中,我有一个ViewPager,里面有很多可滑动的标签,里面有碎片。是否有像这样的方法,每次片段出现在屏幕上时都会调用它?等是在创建片段之后调用的,而不是在片段出现在屏幕上时调用的,因此它们对我不起作用。我的问题可以用哪种方法?