val viewModel: StuffViewModel by sharedViewModel { parametersOf(arguments.id) }
Теперь, когда у меня есть несколько экземпляров c одного и того же класса Fragment, как я могу иметь новый экземпляр для каждого из них? Я думал, что это то, что делает parametersOf()
, но это не похоже на правду.
И да, это должно быть sharedViewModel
из-за некоторой логики c, которая вызывает некоторые сложные манипуляции с фрагментами и модели представления привязаны к сервисам, и кажется, что лучше всего иметь общие экземпляры вместо того, чтобы создавать их заново и повторно привязывать сервис каждый раз.
Что я хочу:
/---------Activity---------\
| |
| StuffViewModel(1) |
| StuffViewModel(2) |
| |
| /---StuffFragment(1)---\ |
| | | |
| | *StuffViewModel(1) | |
| | | |
| \----------------------/ |
| |
| /---StuffFragment(2)---\ |
| | | |
| | *StuffViewModel(2) | |
| | | |
| \----------------------/ |
| |
\--------------------------/
Что Я получаю:
/---------Activity---------\
| |
| StuffViewModel(1) |
| |
| /---StuffFragment(1)---\ |
| | | |
| | *StuffViewModel(1) | |
| | | |
| \----------------------/ |
| |
| /---StuffFragment(2)---\ |
| | | |
| | *StuffViewModel(1) | |
| | | |
| \----------------------/ |
| |
\--------------------------/