par*_*oid 5 mvp tabs android android-fragments fragmentpageradapter
我正在尝试使用MVP设置标签式布局并遇到一些困难.我正在使用Google的Dagger MVP示例应用作为一般参考,并且它们将引用存储在每个活动中的每个演示者中.但是,在我的选项卡式布局中,我正在使用一个活动,每个选项卡都有一个片段(通过FragmentPagerAdapter传递).片段被实例化,并且他们的演示者在FragmentPagerAdapter的getItem()方法中注入.问题是,当应用程序旋转时,我的片段会自动重建,但不会让他们的演示者返回,然后由于NPE而崩溃.我一直将演示者存储为活动或FragmentPagerAdapter(谷歌)中的字段,但无论如何都不能正常工作.
这基本上就是我现在在FragmentPagerAdapter中的做法:
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
@Inject MyPresenter mMyPresenter;
@Override
public Fragment getItem (int position){
switch (position) {
case MY_FRAGMENT_INDEX:
return createMyFragment;
case OTHER_FRAGMENT_INDEX:
return createMyOtherFragment;
default:
return null;
}
private Fragment createMyFragment() {
MyFragment myFragment = MyFragment.newInstance();
// make the presenter
DaggerMyPresenterComponent.builder()
.MyModelComponent(
((MyApplication) getApplication()).getMyModelComponent())
.MyPresenterModule(new MyPresenterModule(myFragment)).build()
.inject(this);
return myFragment;
}
Run Code Online (Sandbox Code Playgroud)
处理这种情况的好架构是什么?我应该在哪里保留对演示者的引用(如果有的话),以及如何管理他们的实例化和重新创建(如果FragmentPagerAdapter不会为我做这些)?
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |