如何解决引发ClassCastException:无法将ViewComponentManager $ FragmentContextWrapper强制转换为AppCompatActivity
我有这段代码,在单击适配器中的viewHolder项时显示对话框片段
SpecialRequestNotFoundBottomSheetDialog {
requestItem?.specialRequestEntity?.id?.let { id -> onCancelReasonsSelected(id,it) }
}.show(itemView.context as AppCompatActivity).supportFragmentManager)
最近我正在迁移到Hilt,并且遇到了类强制转换异常,看起来像Hilt包裹了上下文,但我无法获取父 Activity 来获取所需的 FragmentManager >显示对话框
解决方法
通过检查Context类型并获取BaseContext,我可能找到了解决此崩溃的方法。这是我现在正在使用的。我不知道击键是否有更好的方法。
private fun activityContext(): Context? {
val context = itemView.context
return if (context is ViewComponentManager.FragmentContextWrapper) {
context.baseContext
} else context
}
,
我阅读了源代码,找到了此解决方案FragmentComponentManager.findActivity(view.context) as Activity
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。