gpt4 book ai didi

android - ViewPager - FragmentStatePagerAdapter 和处理旋转

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

我有一个 ViewPager,其中包含 FragmentViewPager 有一个适配器 FragmentStatePagerAdapter

适配器的 getItem 方法。

@Override
public Fragment getItem(int position) {
String text= dbHelper.getText(position);
CustomFragment frg = new CustomFragment(text);
return frg;
}

我正在适配器的 getItem 方法中初始化 fragment 。

一切正常。

然而,当方向发生变化时,CustomFragment 不是恢复我初始化的 fragment ,而是使用 CustomFragment 的默认构造函数创建的。所以这会创建带有虚拟数据的 fragment 。

这是什么原因呢?如何恢复以前创建的 fragment ?

最佳答案

初始化 Fragment 的理想方法是创建一个工厂方法,例如:

public static CustomFragment newInstance(String text) {
Bundle arguments = new Bundle();
arguments.put("someText", text);

CustomFragment fragment = new CustomFragment();
fragment.setArguments(arguments);

return fragment;
}

并在 onCreate() 方法中使用 getArguments() 获取参数并处理它以初始化 fragment 中您想要的任何内容。

这样,当您的 fragment 在配置更改时重新创建时,参数将被保留,并且 Fragment 会在其 onCreate() 方法被调用时自行处理。

如果您使用的是最新的工具,您可能已经注意到关于相同内容的 lint 警告。

关于android - ViewPager - FragmentStatePagerAdapter 和处理旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43570098/

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