我对MVVM架构还很陌生,我喜欢遵循使用here的导航器的想法,这里的问题是导航器用于活动交互,BaseNavigator看起来像这样,很容易不需要任何android类的导入:
public interface BaseNavigator {
void finishActivity();
void finishActivityWithResult(int resultCode);
void startActivityForResult(Class cls, int requestCode);
void startActivityForResultWithExtra(Class cls, int requestCode, String extraKey, String extraValue);
}
如果在需要从ViewModel中打开片段的情况下要打开片段,并且想避免在BaseNavigator方法的任何参数中使用Fragment
类以使其可测试,如何我要去做吗?
当前,我正在考虑使BaseNavigator具有openFragmentA()
,openFragmentB()
等方法。这种方法有意义吗?我只是在想碎片的数量可能会增加并在以后变得过多。
我读过某个地方,直接从Fragment / Activity内部导航并没有完全遵守android MVVM的规则,因此我想避免从另一个View中打开一个View。