{"id":11741,"date":"2019-07-16T09:00:59","date_gmt":"2019-07-16T06:00:59","guid":{"rendered":"https:\/\/www.fandroid.info\/?p=11741"},"modified":"2019-07-17T09:20:25","modified_gmt":"2019-07-17T06:20:25","slug":"viewmodel-%d0%b8-jetpack-navigation-navgraph-%d1%81-viewmodel","status":"publish","type":"post","link":"https:\/\/www.fandroid.info\/viewmodel-%d0%b8-jetpack-navigation-navgraph-%d1%81-viewmodel\/","title":{"rendered":"ViewModel \u0438 Jetpack Navigation : NavGraph \u0441 ViewModel"},"content":{"rendered":"

\u042d\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0438\u0437 \u0446\u0438\u043a\u043b\u0430<\/a> \u043e\u0431 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 ViewModel c Koltin Coroutines, Data Binding \u0438 Navigation.<\/p>\n

\u0427\u0442\u043e\u0431\u044b \u0431\u043e\u043b\u0435\u0435 \u0442\u0435\u0441\u043d\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u0438\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f «\u0427\u0430\u0442-\u043c\u0435\u0441\u0441\u0435\u043d\u0436\u0435\u0440»<\/a><\/p><\/blockquote>\n

ViewModel \u0438 Jetpack Navigation : NavGraph \u0441 ViewModel<\/h1>\n

\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 navigation 2.1.0-alpha02<\/a>
\n\u0414\u043b\u044f Java \u0438 Kotlin<\/p>\n

\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 ViewModel Sharing<\/h2>\n

Jetpack Navigation<\/a> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b \u0441 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0430\u043a\u0442\u0438\u0432\u0438\u0442\u0438 — \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0438\u043c — \u0438 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043f\u0440\u0438\u0447\u0438\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u044d\u0442\u0443 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u042f\u043d\u0430 \u041b\u0435\u0439\u043a\u0430 \u00abSingle Activity: Why, When and How<\/a>\u00bb.<\/p>\n

\u041e\u0434\u043d\u0430 \u0438\u0437 \u043f\u0440\u0438\u0447\u0438\u043d, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f activity-shared ViewModel<\/a>.<\/p>\n

\u0412\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0435 ViewModel, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0430\u043a\u0442\u0438\u0432\u0438\u0442\u0438, \u0438 \u0437\u0430\u0442\u0435\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u044d\u0442\u0443 ViewModel \u0438\u0437 \u043b\u044e\u0431\u043e\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0430\u043a\u0442\u0438\u0432\u0438\u0442\u0438:<\/p>\n

\/\/ Any fragment's onCreate or onActivityCreated\r\n\/\/ This ktx requires at least androidx.fragment:fragment-ktx:1.1.0\r\nval sharedViewModel: ActivityViewModel by activityViewModels()<\/pre>\n

\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0433\u0434\u0435 \u043e\u0434\u043d\u043e \u0430\u043a\u0442\u0438\u0432\u0438\u0442\u0438 \u0438 \u0432\u043e\u0441\u0435\u043c\u044c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432. \u0418\u0437 \u043d\u0438\u0445 \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043a\u0443\u043f\u043e\u043a:<\/p>\n

\"Navigation<\/span>
Navigation Graph \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044d\u043a\u0440\u0430\u043d\u0430\u043c\u0438, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0443\u043f\u043a\u0438<\/figcaption><\/figure>\n