我正在尝试学习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中创建它们,并且每当旋转更改时,片段应该保持不变。
答案 0 :(得分:0)
我已经在活动中创建了它们,但是每当轮播更改时,都会重新创建它们
那很正常。
那么我该如何在viewModel中创建它们
你不知道。您给片段分配自己的ViewModel
,ViewModel
将在配置更改中保留。