You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

In-app review底部弹窗下方出现异常黑背景而非常规遮罩如何解决?

问题根因
  • 宿主Activity主题配置异常:如果调用评分弹窗的Activity使用了透明主题、设置了android:windowIsFloating=true、android:windowBackground为透明/黑色,或者添加了FLAG_FULLSCREEN、FLAG_LAYOUT_NO_LIMITS等窗口Flag,会导致谷歌Play服务的评分弹窗继承宿主的窗口属性,遮罩层渲染异常。
  • Google Play Core依赖版本过旧:低于1.9.0版本的Play Core库存在已知的评分弹窗渲染兼容bug,在Android 9及以下系统上容易出现黑色背景问题。
  • Google Play服务版本过低:老版本Play服务对应用内评分组件的适配不完善,会偶发遮罩层渲染错误。
  • Context传入错误:创建ReviewManager时如果传入的是Fragment Context、Application Context这类非Activity上下文,组件无法正确继承Activity的正常主题配置。
修复方案
  1. 修正ReviewManager创建逻辑,统一使用Activity实例作为上下文,修正后的代码如下:
activity?.let { act ->
    val manager = ReviewManagerFactory.create(act)
    val request = manager.requestReviewFlow()
    request.addOnSuccessListener { reviewInfo ->
        val flow = manager.launchReviewFlow(act, reviewInfo)
        flow.addOnSuccessListener {
            // 评分流程结束后的逻辑
        }
    }
}
  1. 检查调用评分的Activity主题配置,确保以下属性设置正确:
  • android:windowBackground设置为不透明的正常页面背景色,不要使用@null或者透明色
  • 移除FLAG_FULLSCREEN、FLAG_TRANSLUCENT_STATUS等废弃的全屏窗口Flag,如需适配沉浸式状态栏使用官方WindowInsetsController实现
  • 确保android:windowIsFloating为false,android:windowDimAmount保持默认值(推荐0.4-0.6区间)
  1. 升级Google Play Core依赖到最新稳定版,示例依赖配置:
// 基础版
implementation "com.google.android.play:core:1.10.3"
// Kotlin扩展版
implementation "com.google.android.play:core-ktx:1.8.1"
  1. 若仍存在问题,可引导用户升级Google Play服务到最新版本,绝大部分低版本兼容问题升级后即可解决。

问题现象截图:
问题现象截图


内容的提问来源于stack exchange,提问作者M. Gasimov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:54:06