[英]How to send actions from View to ViewModel in MVVM architecture in Android
[英]Is there a way for my viewmodel to listen to events from the view when using the mvvm pattern specified by the android architecture component?
我開始使用mvvm模式來構建我的android應用程序 ,並且我希望通過讓視圖觀察來自viewmodel的數據來維護其模式,但是在需要時或僅需要觀察數據的情況下(例如當導航到新布局時,我發現實現這種情況很困難。 請問有可能嗎? 以及如何通過代碼( kotlin )完成它?
我認為這是一個糟糕的決定,因為你的ViewModel不應該對View有任何了解,ViewModel應該使用DataBinding或Observer-Pattern “推送”到View。
ViewModel負責包裝模型並准備視圖所需的可觀察數據。 它還為視圖提供了將事件傳遞給模型的鈎子。 但是,ViewModel與視圖無關。
即使您決定執行此類操作,您也必須了解在銷毀視圖時管理訂閱可能很困難。
如果您只想觀察一次,那么您必須為LiveData編寫自己的擴展( 這里可以找到示例)。 你也可以閱讀該文章,以確保該如何處理單一事件。
如果您只是詢問如何從ViewModel調用某些東西,當您的View中出現一些具體事件時,那么這里的最佳解決方案將是ViewModel中的簡單調用方法,從您在窗口小部件的監聽器(按鈕等)中查看
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.