zoukankan      html  css  js  c++  java
  • Flutter实现沉浸式状态栏-flutter原生支持(原生效果支持IOS和安卓)

    我不喜欢废话 先上图 (都是真机测试)

    • 安卓的

    • ios的(用ipad演示的)

    实现方式

    ### 我们只需要在生命周期 initState()或者其他的钩子中调用下面的 方法即可
    
    /// 状态栏样式 沉浸式状态栏
      _statusBar([String color]) {
        // 白色沉浸式状态栏颜色  白色文字
        SystemUiOverlayStyle light = SystemUiOverlayStyle(
          systemNavigationBarColor: Color(0xFF000000),
          systemNavigationBarDividerColor: null,
          /// 注意安卓要想实现沉浸式的状态栏 需要底部设置透明色
          statusBarColor: Colors.transparent,
          systemNavigationBarIconBrightness: Brightness.light,
          statusBarIconBrightness: Brightness.light,
          statusBarBrightness: Brightness.dark,
        );
    
     // 黑色沉浸式状态栏颜色 黑色文字
        SystemUiOverlayStyle dark = SystemUiOverlayStyle(
          systemNavigationBarColor: Color(0xFF000000),
          systemNavigationBarDividerColor: null,
          /// 注意安卓要想实现沉浸式的状态栏 需要底部设置透明色
          statusBarColor: Colors.transparent,
          systemNavigationBarIconBrightness: Brightness.light,
          statusBarIconBrightness: Brightness.dark,
          statusBarBrightness: Brightness.light,
        );
    // 这个地方你可以去掉三目运算符 直接调用你想要的 效果即可
        "while" == color?.trim()
            ? SystemChrome.setSystemUIOverlayStyle(light)
            : SystemChrome.setSystemUIOverlayStyle(dark);
      }
    

    ps :这个其实是 依赖余Flutter给我提供的一个 实现类 import 'package:flutter/services.dart';

  • 相关阅读:
    LeetCode——二叉树中的最大路径和
    LeetCode——验证回文串
    LeetCode——word-ladder*
    LeetCode——最长连续序列
    3G? 2G? 2.5G? 4G? 与 WIFI, GPRS,CDMA 3G无线上网
    GSM、GPRS、EDGE、2G、3G与WAP的关系
    3G 2G GPRS 1G的概念
    那些精华博客
    单片机系统与标准PC键盘的接口模块设计
    以多个实例方式打开Notepad++
  • 原文地址:https://www.cnblogs.com/shundong106/p/12203850.html
Copyright © 2011-2022 走看看