XXPermissions icon indicating copy to clipboard operation
XXPermissions copied to clipboard

[Bug]:Android 15 申请权限后 dialogfragment的mask layer 每次打开 都会闪烁一次

Open Bruce8hou opened this issue 11 months ago • 11 comments

框架版本【必填】

20.0

问题描述【必填】

在 Android 15 上使用XXPermissions申请权限后,打开所有的带有 mask layer 的界面都会全黑的闪烁一次尤其在dialogfragment上问题最为突出。

复现步骤【必填】

第一步:使用XXPermissions 申请任何权限。 第二步,打开 软件内的任意dialogfragment 界面(第一步和第二步之间不能退出 APP)。

是否必现【必填】

项目 targetSdkVersion【必填】

34

出现问题的手机信息【必填】

红米 k10

出现问题的安卓版本【必填】

15

问题信息的来源渠道【必填】

自己遇到的

是部分机型还是所有机型都会出现【必答】

小米 带 android 15 的全系

框架最新的版本是否存在这个问题【必答】

框架文档是否提及了该问题【必答】

是否已经查阅框架文档但还未能解决的【必答】

issue 列表中是否有人曾提过类似的问题【必答】

是否已经搜索过了 issue 列表但还未能解决的【必答】

是否可以通过 Demo 来复现该问题【必答】

提供报错堆栈

No response

提供截图或视频

No response

提供解决方案

No response

Bruce8hou avatar Dec 30 '24 18:12 Bruce8hou

这个问题是小米 Android 15 的机型才会出现还是所有品牌的 Android 15 的机型都会出现?

getActivity avatar Dec 31 '24 01:12 getActivity

vivo 在 Android 15 上也复现了

Bruce8hou avatar Dec 31 '24 13:12 Bruce8hou

你说的 mask layer 是指的什么?Dialog?Fragment?

getActivity avatar Jan 01 '25 02:01 getActivity

在弹出DialogFragment 的时候 会把屏幕后面变暗,这个变暗的就是mask layer 层。如果用XXPermissions先申请了权限,然后打开Dialog的时候,这个mask layer 就会在屏幕上全黑抖动一下。重新打开一次 APP 就好了

Bruce8hou avatar Jan 01 '25 14:01 Bruce8hou

@Bruce8hou 你录个视频过来我看看

getActivity avatar Jan 01 '25 15:01 getActivity

有差不多的问题,在DialogFragment中请求权限的话,状态栏因为mask会来回切换颜色,体验不是很好

Er3c avatar Jan 06 '25 06:01 Er3c

@getActivity @Bruce8hou 在Android15上,除了DialogFragment外,普通的Dialog也会闪烁,不过这不是xxpermission的问题,使用Android提供的原生api请求权限也会闪烁

HanHua0402 avatar Jan 08 '25 09:01 HanHua0402

@HanHua0402 如果不是框架的问题,就需要自行解决了。

getActivity avatar Jan 08 '25 23:01 getActivity

@HanHua0402 您有没有解决方法呢? 能否分享一下呢?

Bruce8hou avatar Jan 13 '25 21:01 Bruce8hou

@HanHua0402 您有没有解决方法呢? 能否分享一下呢?

无,Android15系统的问题?,没招哇。

HanHua0402 avatar Feb 04 '25 00:02 HanHua0402

@Er3c @Bruce8hou @HanHua0402 @yujia77fxm 我突然想到一个办法,不知道可不可行,你们换成 EasyWindow 试试,这个是基于 WindowManager 封装的悬浮窗框架,看看能不能解决你们的需求。

getActivity avatar May 10 '25 05:05 getActivity

Image Image

你们说的是这个问题吧?Dialog 在 Android 14 和 Android 15 的表现不一样,Android 14 没有蒙层,Android 15 又有蒙层。我个人觉得这个问题没有什么,如果你一定要关闭这个 Dialog 自带的蒙层,可以通过设置以下的代码来解决:

Window window = dialog.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

getActivity avatar Jun 28 '25 05:06 getActivity