如何解决活动无法使用androidx
我遇到了与Activity与Androidx.FragmentManager的getFragmentManager()合并相关的问题。
public void myMethod(Activity activity) {
/**
* do some staff here
*/
//Now we should open a DialogFragment
new MyCustomDialogFragment().show((activity).getFragmentManager(),MyCustomDialogFragment.TAG);
}
在这里出现错误"Can not resolve method show(android.app.FragmentManager,java.lang.String)
。
所有这些都是因为当DialogFragment
的{{1}}从androidx.fragment.app
包返回Activity
时,我的getFragmentManager()
来自FragmentManager
包。
我看到2种解决方案。
- 更改
android.app
的依赖关系,并使用DialogFragment
中的依赖关系 - 更改
android.app
签名以接收myMethod()
(来自androidx)而不是AppCompatActivity
并调用Activity
。
第一个解决方案不好,因为我想尽可能地使用androidx类。其次,尽管AppCompatAcivitity是最佳做法,但它也有缺点。
问题是:是否有一种方法可以继续使用androidx依赖项,并在getSupportedFragmentManager()
中包含Activity
类型参数?
解决方法
您应该使用FragmentActivity
(来自androidx)而不是Activity
作为myMethod()
中的参数类型,并调用getSupportFragmentManager()
以获取FragmentManager
。这应该可以解决您的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。