MVVM с привязкой данных - навигация по фрагментам или ViewModel - PullRequest
0 голосов
/ 02 февраля 2020

Я запутался, как лучше структурировать навигацию при использовании MVVM с привязкой данных.

Это два моих предложения, которое лучше всего.

  1. Навигация из фрагмента использование onClickListener

    private fun setupUIListeners() {
        btnToBrowse.setOnClickListener { it
            navigateToSecondFragment(it)
        }
    }
    
    private fun navigateToSecondFragment(it: View) {
        val action = FirstFragmentDirections.actionToSecondFragment()
        Navigation.findNavController(it).navigate(action)
    }
    
    
  2. Навигация с использованием привязки данных из ViewModel, которую я пока не выяснил, почему она еще не работает. Я действительно думаю, что это должно быть связано с тем, что (view) не эквивалентно (it: View) в моем первом методе, хотя я не уверен,

    class FirstViewModel : ViewModel() {
        fun navigateToSecondFragment(view: View) {
            val action = FirstFragmentDirections.actionToSecondFragment()
            Navigation.findNavController(view).navigate(action)
        }
    }

и Frag_First. xml

<Button
        ...
        android:onClick="@{(view) -> viewmodel.navigateToSecondFragment(view)}"
        ...

Однако какой из этих методов лучше?

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