【发布时间】:2025-12-05 00:35:01
【问题描述】:
我遇到了一个导致冲突的奇怪问题。我不得不切换到原生 Fragments 来修复它,但存在一些错误。
我最初的问题:我有一个带有v4 Fragments. 的导航抽屉设置要在我调用ActivityCompat.requestPermissions(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION, 1); 的片段中请求许可,提示显示得很好,但是当我接受或拒绝许可时,没有任何反应。永远不会调用回调 onRequestPermissionsResult()。相反,它在我的 Fragments 附加到的 Activity 中被调用。对我没用,我需要回调才能在 Fragment 中工作。
考虑到这一点,我被告知我需要使用 FragmentCompat,但这仅适用于 native Fragments (v13+),因此我将导航抽屉更改为使用原生 Fragments 而不是 v4 支持库 Fragments。 但是,因为我正在使用 AppCompatActivity,某些事情不起作用,例如 addToBackStack() 并返回到上一个片段。
长话短说,有谁知道我如何使用v4.Fragment 并且仍然在Fragment 中请求许可并让回调在Fragment 中?我觉得这是 Android 中的一个错误,尚未解决,但我不是 100%。
如果您需要查看我的代码,请告诉我,这只是您获得运行时权限所需的标准方法,我想使用 v4 片段,但据我了解这不起作用。
【问题讨论】:
标签: java android android-fragments android-6.0-marshmallow