gpt4 book ai didi

android - 更改 ViewPager 的顺序并更新 View

转载 作者:行者123 更新时间:2023-11-30 03:56:29 29 4
gpt4 key购买 nike

我的 ViewPager 有超过 10 个 View 。我希望偶尔更改页面的顺序,即

第 1 页 |第 2 页 |第 3 页

第 3 页 |第 1 页 |第2页

对于我使用的选项卡 ViewPagerIndicator ,我可以通过更改我的适配器的顺序并调用来更新它们的顺序:

mViewPagerIndicator.notifyDataSetChanged();

但是,我无法更新的是 ViewPager 的内容,例如,如果我更新 ViewPager 适配器(按照我希望页面的新顺序)并调用:

mViewPager.getAdapter().notifyDataSetChanged()

这没有效果。选项卡指示栏更新正常,但页面内容仍显示旧顺序。

有没有办法改变 ViewPager 适配器中的页面顺序并让 ViewPager 重新加载它的所有 View ?


我的 ViewPager 适配器扩展了 FragmentStatePagerAdapter 并且我重写的方法如下:

@Override
public Fragment getItem(int position) {
return MyCustomFragment.newInstance();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//super.destroyItem(container, position, object); // Commented out to ensure views are not destroyed
}

谢谢

最佳答案

使用 FragmentStatePagerAdapter 很棘手,因为您必须自己实现逻辑,但是使用 FragmentPagerAdapter 就容易多了,它已经提供了用于此目的的功能。

调用 .notifyDataSetChanged() 会调用适配器的 getItemPosition(Object object) 方法。您应该在此处向 ViewPager 提供在参数 object 中传递的 Fragment 放置位置的信息,方法是返回您希望 Fragment 所在的页码。

有关如何执行此操作的示例,check out my answer here .

关于android - 更改 ViewPager 的顺序并更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13267716/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com