Android getViewModelStoreOwner for AndroidViewModel, ошибка конструктора без нулевого аргумента - PullRequest
0 голосов
/ 18 января 2020

Я использовал бета-версию компонента навигации, и мой код работал нормально, затем я вернулся к последней не бета-версии, и она перестала работать, но, насколько я вижу, я не использовал ничего бета-i sh: -)

Я хочу охватить модели представлений навигационными графиками. Я делаю это, получая владельца хранилища навигационного контроллера, это работает для ViewModel, но не для AndroidViewModel, при попытке вызвать ошибку, потому что она ожидает конструктор без нулевого аргумента, который не подходит для AndroidViewModel, но, как уже упоминалось выше, он работает в бета-версии,

private ViewModelStoreOwner getStoreOwner() {

        NavController navController = Navigation
                .findNavController(requireActivity(), R.id.root_navigator_fragment);
        return navController.getViewModelStoreOwner(R.id.root_navigator);

}

Используйте его с

singleCardViewModel = new ViewModelProvider(getStoreOwner()).get(SingleCardViewModel.class);

поэтому несколько способов сделать эту работу - это

1) поменять модель представления android на модель нормального представления, это может быть сделано для большинства, однако для некоторых моделей представления требуется приложение для вызовов базы данных,

2) Я мог бы поменять их местами для моделей представлений и затем создать фабрики, чтобы передать ему приложение,

3) Я могу заменить getStoreOwner для этого фрагмент, просто передав «this» вместо getStoreOwner, но это, вероятно, означает больше тестирования, чтобы убедиться, что он не содержит значений

4) Продолжайте использовать бета-версию, я бы предпочел избежать этого, если это возможно

ни один из них не идеален, разве это не должно сработать? я делаю что-то явно не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...