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

三星设备Flutter应用使用share_plus等分享内容时状态栏隐藏问题求助

三星设备Flutter应用调用分享组件时状态栏被隐藏/覆盖的解决办法

问题描述

在三星设备上运行Flutter应用,使用share_plus或flutter_share等分享组件调用分享功能,弹出WhatsApp、Discord、Telegram等分享选项列表时,状态栏会被隐藏或覆盖,需解决该问题。

已尝试的代码

使用share_plus

await Share.share('https://www.google.com', subject: 'Google');

使用flutter_share

await FlutterShare.share(
  title: 'Product share', 
  text: 'Mobile',
  linkUrl: 'https://www.google.com'
); 

注:有演示视频展示状态栏异常情况

解决办法

方案一:修改Android主题配置

该问题本质是三星系统弹出分享窗口时修改了APP的窗口UI模式,可通过调整Android主题配置强制保持状态栏显示:

  1. 打开android/app/src/main/res/values/styles.xml(若有高版本适配文件如values-v31/styles.xml需同步修改)
  2. 在当前使用的主题(如AppTheme)中添加以下配置:
<item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
  1. 确保主题继承自非全屏类主题,例如Theme.MaterialComponents.DayNight.NoActionBar

方案二:Flutter层面手动控制状态栏样式

通过在分享前后保存、恢复状态栏样式,强制保持状态栏可见:

import 'package:flutter/services.dart';
import 'package:share_plus/share_plus.dart';

// 调用分享前保存当前状态栏样式
final originalStyle = SystemChrome.latestStyle;

// 强制设置状态栏显示样式(根据APP主题调整参数)
SystemChrome.setSystemUIOverlayStyle(
  const SystemUiOverlayStyle(
    statusBarColor: Colors.transparent,
    statusBarIconBrightness: Brightness.dark, // 深色图标适配浅色状态栏,反之则用Brightness.light
    statusBarBrightness: Brightness.light,
  ),
);

// 执行分享操作
await Share.share('https://www.google.com', subject: 'Google');

// 分享完成后恢复原状态栏样式
if (originalStyle != null) {
  SystemChrome.setSystemUIOverlayStyle(originalStyle);
}

方案三:调整Android原生Intent启动模式(进阶)

若上述方案无效,可通过自定义Android平台通道,修改分享Intent的启动标记,避免系统窗口切换影响状态栏:

  1. 在Android项目中创建自定义分享工具类,添加Intent.FLAG_ACTIVITY_NEW_TASK等标记
  2. 通过Flutter平台通道调用该原生方法实现分享,替代插件默认逻辑

原理说明

三星设备的系统分享弹窗属于系统级窗口,部分系统版本会触发APP窗口的UI模式变更(如临时全屏)。通过主题配置强制禁用全屏、或在Flutter层面手动锁定状态栏样式,可避免该异常。

内容的提问来源于stack exchange,提问作者Alpesh Kukadiya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:33:01