gpt4 book ai didi

android - 在 AndroidViewModel 中获取 FragmentManager

转载 作者:太空狗 更新时间:2023-10-29 16:11:54 25 4
gpt4 key购买 nike

AndroidViewModel 用于访问 Application 上下文。我正在尝试访问 ActivityFragmentManager 而不显式传递它:

class FooViewModel(app: Application) : AndroidViewModel(app) {
private val fm = (app.applicationContext as Activity).fragmentManager
..
}

出现错误,无法将 Context 转换为 Activity


问题:有没有办法在AndroidViewModel中获取FragmentManager而不显式传递它?

最佳答案

我认为简短的回答是“不,没有办法”,因为Application 上下文不知道FragmentManager

FragmentManagerFragmentActivity 的子类可能拥有的对象。 Application 不是 FragmentActivity 的子类。

另一个问题是,为什么您的 ViewModel 中需要一个 FragmentManager 实例?最有可能的是,您应该将与 View 相关的内容委托(delegate)给 ViewModel 以外的其他单元来处理(例如,ActivityFragment)。请记住,此 ViewModel 将在配置更改后保留,因此如果您在 ViewModel 中保留对 FragmentManager 的引用,您d 会泄露您的 Activity 实例。

关于android - 在 AndroidViewModel 中获取 FragmentManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44565431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com