Flutter:iPad 状态栏颜色减半

问题描述 投票:0回答:1

当我尝试使用库(flutter_statusbarcolor_ns)或直接使用直接flutter代码设置状态栏颜色时:

 void _setStatusBarColor(Color color) {
    SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
    statusBarColor: color,
 ));
}

状态栏颜色未正确设置。它在 ipad 纵向模式下运行完美,但在 ipad 横向模式下性能下降近一半(或 60%)。

注意:我尝试了很多东西,包括不同的库、检查 flutter 原生代码,但没有运气。如有任何帮助,我们将不胜感激。

flutter ipad mobile orientation statusbar
1个回答
0
投票

flutter 中的渲染不受系统调用或组件的影响,因此 1 个此类解决方案可能涉及手动渲染所需的颜色并仅使用 systemchrome 设置来调节亮度(图标应该是白色还是黑色)

class StatusBarViewer extends StatefulWidget {
  final Widget child;
  const StatusBarViewer({required this.child, super.key});

  @override
  State<StatusBarViewer> createState() => _StatusBarViewerState();
}

class _StatusBarViewerState extends State<StatusBarViewer> {
  @override
  Widget build(BuildContext context) {
    return Stack(children: [
      SafeArea(
        child: widget.child,
      ),
      Align(
        alignment: Alignment.topCenter,
        child: Container(
            width: MediaQuery.of(context).size.width, height: MediaQuery.of(context).viewPadding.top, color: Colors.blue),
      )
    ]);
  }
}

这样的东西将允许您拥有一个“SafeArea”小部件,您自然会在其他地方使用它来处理状态栏的更改,您甚至可以自定义应用程序栏的实现来处理不使用安全区域的情况,以便您可以自定义填充它,但作为你可以在 ipad 模拟器中看到它的工作原理

vertical status bar horizontal status bar

© www.soinside.com 2019 - 2024. All rights reserved.