10
ViewPager和片段—存储片段状态的正确方法是什么?
片段对于将UI逻辑分为一些模块来说似乎非常好。但是随着ViewPager它的生命周期,我仍然迷茫。因此,非常需要大师的想法! 编辑 请参阅下面的愚蠢解决方案;-) 范围 主要活动有一个ViewPager带有片段。这些片段可以为其他(子主)活动实现一些不同的逻辑,因此片段的数据通过活动内部的回调接口填充。并且所有功能在首次启动时都正常,但是! 问题 重新创建活动时(例如,在方向更改时),ViewPager的片段也是如此。代码(您将在下面找到)说,每次创建活动时,我都会尝试创建一个ViewPager与片段相同的新片段适配器(也许是问题所在),但是FragmentManager已经将所有这些片段存储在某个地方(哪里?),并且为这些人启动娱乐机制。因此,重新创建机制通过我的回调接口调用“旧的”片段的onAttach,onCreateView等,以通过Activity的实现方法来初始化数据。但是此方法指向通过Activity的onCreate方法创建的新创建的片段。 问题 也许我使用的是错误的模式,但即使是Android 3 Pro书籍也没有太多相关信息。因此,请给我一两次拳,并指出正确的方法。非常感谢! 码 主要活动 public class DashboardActivity extends BasePagerActivity implements OnMessageListActionListener { private MessagesFragment mMessagesFragment; @Override protected void onCreate(Bundle savedInstanceState) { Logger.d("Dash onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.viewpager_container); new DefaultToolbar(this); // create fragments to use mMessagesFragment = new MessagesFragment(); mStreamsFragment = new StreamsFragment(); // …