Где должны быть созданы фрагменты? Во viewModel или Activity? - PullRequest
1 голос
/ 20 июня 2019

Я пытаюсь изучить паттерн MVVM, и я делаю пример проекта с ним.Но я не могу понять, что фрагменты должны быть созданы в ViewModel или Activity.

Я создал их в действии, но всякий раз, когда меняется поворот, все воссоздается.Это мой код:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val navView: BottomNavigationView = findViewById(R.id.nav_view)

        popularFragment = FragmentPopular()
        discoverFragment = FragmentDiscover()
        favoritesFragment = FragmentFavorites()

        setFragment(popularFragment)

        navView.setOnNavigationItemSelectedListener(onNavigationItemSelectedListener)
    }

    fun setFragment(fragment: Fragment){
        supportFragmentManager.beginTransaction().replace(R.id.frame_main, fragment).commit()
    }

Так как я могу создать их в ViewModel, и при каждом изменении поворота фрагменты должны оставаться неизменными.

1 Ответ

0 голосов
/ 20 июня 2019

Я создал их в действии, но всякий раз, когда меняется ротация, все воссоздается

Это совершенно нормально.

Так как я могу создать их в viewModel

Вы не. Вы даете фрагментам их ViewModel, и ViewModel будет сохраняться при изменении конфигурации.

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