EasyPermissions 使用问题记录

1. 遇到的问题描述

在启动界面使用EasyPermissions,这个界面有用到权限的申请,但是第一次拒绝权限后(未勾选不再提醒),下次再发起权限请求时,EasyPermissions的询问弹窗出现占满屏幕且背景颜色异常的迷一样的问题。但是在其他界面发起权限请求并不会出现这个问题。

2. 出现的问题效果图片

在这里插入图片描述

3. 问题分析和解决

一开始并没有去查看其他界面的弹窗效果,一直以为是EasyPermissions使用的问题,去issue找了半天没找到问题,百度也没有结果。自己源码翻了半天,没招,就去看了下其他界面的的权限请求弹窗效果,结果是正常的。

只有启动界面出现问题,那就好办了,查看了下启动界面的代码和主题,弹窗出现全屏显示,应该是被activity的主题影响了。

启动页设置的样式

<style name="SplashStyle" parent="AppTheme"
      <item name="android:windowNoTitle"true</item
      <item name="android:windowFullscreen"true</item
      <item name="android:background"@drawable/splash</item
  </style

排除一下发现下面这句话的锅

<item name="android:background"@drawable/splash</item

这边为了优化启动的视觉效果,给app启动页预先设置背景,莫名的挖了个坑。

4. 解决方法

既然是主题样式的问题,那么解决方法就简单了,给EasyPermissions的弹窗单独设置主题

<?xml version="1.0" encoding="utf-8"?
<resources

    <style name="EasyPermissions_theme"
        <item name="android:layout_width"wrap_content</item
        <item name="android:layout_height"wrap_content</item
        <item name="android:windowIsFloating"true</item
        <item name="android:backgroundDimEnabled"false</item
        <item name="android:background"@null</item
    </style

</resources

发起请求的代码

//        EasyPermissions.requestPermissions(getCurActivity(), rationale, requestCode, perms);
        EasyPermissions.requestPermissions(
                new PermissionRequest.Builder(getCurActivity(), requestCode, perms)
                        .setRationale(rationale)
                        .setPositiveButtonText("确定")
                        .setNegativeButtonText("取消")
                        .setTheme(R.style.EasyPermissions_theme)
                        .build());

    }

最后效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值