在 MVP 中,View 具有 Context 来启动另一个 View,它可以是另一个 Fragment 或 Activity,因此您的 @987654325 之间的任何转换@ 必须通过 View。在你的情况下,你有:
View1(滑动抽屉片段) Presenter1
View2(主片段) Presenter2
您单击 View1 上的一个小部件,并希望使用 MVP 导航到 View2 上的某个屏幕。你可以这样做:
---------------------- 查看 1 ---------
view1Item.setOnClickListener(new OnClickListener({
presenter1.doWhenItem1IsClicked();
}))
---------------------- 演示者 1 ----------------
public void doWhenItem1IsClicked(){
mView.showRelevantPageOnMainScreen()
}
---------------------- 查看 1 ---------
public void showRelevantPageOnMainScreen(){
View2 view2=new View2(); //This is better to be done using DI
getFragmentManager().beginTransaction().replace(R.id.your_main_page_layout,view2).commit();
}
---------- 视图 2 ---------
public void onCreate(){
super.onCreate();
presenter2=new Presenter2(this);
}
.
.
.
我写了一个 MVP 库 here 你可能会觉得有帮助。