Flutter SystemChrome使用方法详解

 更新时间:2022年12月12日 11:49:47   作者:IAM17  
这篇文章主要为大家介绍了Flutter SystemChrome使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

SystemChrome 控制操作系统图形界面的特定方面以及它如何与应用程序交互。

需要注意的是在使用的时候一定要保证先执行 WidgetsFlutterBinding.ensureInitialized();

setPreferredOrientations 设置横屏或坚屏

一般我们显示是要强制坚屏,只需要指定 DeviceOrientation.portraitUp 就够了。

SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

不需要再加上 DeviceOrientation.portraitDown,因为加上也不会有效果。

SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,DeviceOrientation.portraitDown]);

这样写也可以,只有后面的 portraitDown 有点多余,如果可以的话,系统不允许在竖直方向倒过来,所以即使是手机设置中没有打开方向锁定,也不用担心会倒过来。

如果想在竖直方向倒过来,可以只指定 portraitDown。这样画面就会一直倒置。

SystemChrome.setPreferredOrientations([DeviceOrientation.portraitDown]);

如果想设置画面水平一般会同时设置两个。当手机反转的时候,画面也可以随着反转。(没有设置锁定的情况下)

SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeLeft,DeviceOrientation.landscapeRight]);

只有禁用多任务处理时,此设置才会在 iPad 上生效。

setEnabledSystemUIMode 设置全屏显示

用 manual 的方式可以指定显下面或下面的 overlay,或都不显示。

//都不显示,全屏
 SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,overlays: []);
 //显示上面
 SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,overlays: [SystemUiOverlay.top]);
 //显示下面
 SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,overlays: [SystemUiOverlay.bottom]);

setSystemUIOverlayStyle 设置 overlay 样式,

overlay 的显示样式,比如可以显示 dark style

  SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);

android 有效,ios 可能没有效果。

如果有的设置没生效,可以重新启动 app 试试

全屏播放视频

如果要全屏播放视频可以做如下设置,横屏,并去掉 overlays。

 SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,overlays: []);
 SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeLeft,DeviceOrientation.landscapeRight]);

setSystemUIChangeCallback

只在 android 有效,SystemUiMode 设置 SystemUiMode.leanBack 或 SystemUiMode.immersive 或 SystemUiMode.immersiveSticky 的时候, overlays 会随着与用户交互消失或出现,可以监听 setSystemUIChangeCallback 让 overlays 自动恢复原来的状态。

WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive);
SystemChrome.setSystemUIChangeCallback((systemOverlaysAreVisible) async {
  await Future.delayed(const Duration(seconds: 1));
  SystemChrome.restoreSystemUIOverlays();
});

AnnotatedRegion

如果想控制 status bar 的样式还可以用 AnnotatedRegion,需要注意的是,使用 AnnotatedRegion 就不要使用 AppBar了,否则会被 AppBar了 覆盖。

AnnotatedRegion(
    child: Text('IAM17'),
    value: SystemUiOverlayStyle(
        statusBarColor: Colors.green,
        statusBarIconBrightness: Brightness.light,
        //底部navigationBar背景颜色
        systemNavigationBarColor: Colors.white),
  )

以上就是Flutter SystemChrome使用方法详解的详细内容,更多关于Flutter SystemChrome使用的资料请关注脚本之家其它相关文章!

相关文章

  • Flutter框架实现Android拖动到垃圾桶删除效果

    Flutter框架实现Android拖动到垃圾桶删除效果

    这篇文章主要介绍了Flutter框架实现Android拖动到垃圾桶删除效果,Flutter框架中的Draggable部件,用于支持用户通过手势拖动,它是基于手势的一种方式,可以使用户可以在屏幕上拖动指定的部件,下面我们来详细了解一下
    2023-12-12
  • android实现raw文件夹导入数据库代码

    android实现raw文件夹导入数据库代码

    这篇文章主要介绍了android实现raw文件夹导入数据库代码,有需要的朋友可以参考一下
    2013-12-12
  • Android仿微信录制语音功能

    Android仿微信录制语音功能

    这篇文章主要介绍了Android仿微信录制语音功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • kotlin开发cli工具小技巧详解

    kotlin开发cli工具小技巧详解

    这篇文章主要为大家介绍了kotlin开发cli工具小技巧详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Android实现阅读进度记忆功能

    Android实现阅读进度记忆功能

    这篇文章主要介绍了Android实现阅读进度记忆功能,Android控件WebView实现保存阅读进度,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法

    Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法

    这篇文章主要介绍了Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法,以实例形式分析了ScrollView中滑动失效的原因及解决方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Android实现SwipeRefreshLayout首次进入自动刷新

    Android实现SwipeRefreshLayout首次进入自动刷新

    这篇文章主要为大家详细介绍了Android实现SwipeRefreshLayout首次进入自动刷新,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • android开发之横向滚动/竖向滚动的ListView(固定列头)

    android开发之横向滚动/竖向滚动的ListView(固定列头)

    由于项目需要,我们需要一个可以横向滚动的,又可以竖向滚动的 表格;经过几天的研究终于搞定,感兴趣的朋友可以了解下哦
    2013-01-01
  • Android实现类似微信的文本输入框 效果

    Android实现类似微信的文本输入框 效果

    本文给大家介绍一下微信的文本输入框是如何实现的,其实那只是个普通的文本框设了一个特殊的背景而已。具体微信怎么实现的,大家可以反编译下,这里介绍下如何实现这个背景
    2017-05-05
  • Android中EditText setText方法的踩坑实战

    Android中EditText setText方法的踩坑实战

    这篇文章主要给大家分享了一些关于Android中EditText setText方法的踩坑记录,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07

最新评论