Я не совсем понял ваш вопрос. Однако, если ваш вопрос был следующим:
Как я могу поделиться одним и тем же ViewModel
Object и использовать его внутри нескольких Fragment
s.
Вы можете проверить документация ViewModelProvider , который является служебным классом, который предоставляет ViewModel
s для определенной c области, например Activity
.
Ниже приведен пример кода использования ViewModelProvider
в пределах двух Fragment
s, которые будут созданы и использованы в одном объекте Activity
:
// An example ViewModel
class SharedViewModel : ViewModel() {
val intLiveData = MutableLiveData<Int>() // an example LiveData field
}
// the first fragment
class Fragment1 : Fragment() {
private lateinit var viewModel: SharedViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = requireActivity().let { activity ->
ViewModelProvider(activity).get(SharedViewModel::class.java)
}
}
}
// the other fragment
class Fragment2 : Fragment() {
private lateinit var viewModel: SharedViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = requireActivity().let { activity ->
ViewModelProvider(activity).get(SharedViewModel::class.java)
}
}
}