簡體   English   中英

在使用android體系結構組件指定的mvvm模式時,我的viewmodel是否有辦法從視圖中偵聽事件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM