Android MVVM навигатор - какой лучший способ открыть фрагмент из навигатора?

Я довольно новичок в архитектуре MVVM, мне нравится следовать идее навигаторов, используемых здесь, проблема здесь в том, что навигатор используется для взаимодействия действий, 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, и я хочу избежать использования Fragment класс в любом из параметров методов BaseNavigator, чтобы сделать его тестируемым, как мне это сделать? В настоящее время я думаю, что BaseNavigator должен иметь такие методы, как openFragmentA(), openFragmentB() и т.д.. Имеет ли этот подход смысл? Я просто думаю, что количество фрагментов может увеличиться и стать слишком много позже.

Я где-то читал, что навигация непосредственно из Fragment/Activity не полностью подчиняется правилу android MVVM, поэтому я хочу не открывать View из другого View.

0 ответов

Другие вопросы по тегам