带柄注入viewModel

时间:2020-09-13 13:32:05

标签: android android-recyclerview dagger-2 dagger-hilt recyclerlistview

我想用Hilt将我的viewModel注入RecyclerView中。 可以注入它,但是当recyclerView销毁时viewModel不会销毁。 用hilt将viewModel注入recyclerView的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

不应将视图模型注入到适配器中,正如我在评论中读到的那样,您可以使用比这更好的方法,
假设您有一个包含多行的适配器,当用户单击时每行在它上面,它执行网络调用。
首先,创建一个 interface

interface Click {
fun onClick(index: Int, item: Model)
}

在您的适配器中,初始化它的一个实例,然后在您的 onBindViewHolder

中使用它
yourview.setOnClickListener {v-> interface.onClick()}

不要忘记在你使用它的地方(Activity/Fragment/...)初始化界面。
这是比对每一行使用 ViewModel 更好的解决方案,后者可能会导致 SystemLeaks。