簡體   English   中英

如何將 function 作為參數傳遞給目標片段 - Android 導航組件

[英]How to pass a function as an argument to a destination fragment - Android Navigation Component

我有一個DialogFragment擴展了我想在導航圖中用作目的地的 DialogFragment,這樣我就可以像打開任何其他片段一樣打開它。 我想將函數作為 arguments 傳遞給我的DialogFragment class 以用於正負按鈕偵聽器。 在這種情況下,它們將是來自調用 Fragment 的函數。

那么,是否可以將函數作為 arguments 傳遞給導航組件目標,或者是否有另一種方法來 go 這樣做。 DialogFragment 需要自己的 ViewModel 嗎?

正如@CommonsWare 建議的那樣,我最終這樣做的方式是擁有一個共享的 ViewModel。

ViewModel 的設置如下:

class ViewModel(application: Application) : AndroidViewModel(application) { }

它是這樣實例化的,在使用它的兩個片段中使用requireActivity()以確保它充當 singleton,因為這些片段共享一個父活動。

val viewModel = ViewModelProvider(requireActivity()).get(ViewModel::class.java)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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