方法一

  SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.bottom]);  //隐藏状态栏 上方黑边

  SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]); //隐藏导航栏

  SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []);  // 隐藏状态栏和导航栏  上方黑板
    SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle( //设置状态栏透明
       statusBarColor: Colors.transparent,
     ));

方法二(状态栏设置透明)

import 'package:flutter/material.dart';

void main() {
runApp(MyApp());
} class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter App',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
backgroundColor: Colors.transparent, // 设置AppBar为透明
elevation: 0, // 去除AppBar的阴影
),
body: Container(
// 这里是页面内容
),
),
);
}
}

展示如何通过点击屏幕来进入/退出全屏模式,并且在全屏模式下通过滑动屏幕来退出全屏

import 'dart:async'; // 导入使用Timer需要的库
import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; // 导入使用SystemChrome需要的库 void main() {
runApp(MyApp()); // 运行应用程序
} class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo', // 设置应用程序的标题
home: Scaffold(
body: MyHomePage(), // 设置主页面为 MyHomePage 组件
),
);
}
} class MyHomePage extends StatefulWidget {
MyHomePage({Key? key}) : super(key: key); @override
_MyHomePageState createState() => _MyHomePageState();
} class _MyHomePageState extends State<MyHomePage> {
bool _isFullScreen = false; // 判断是否全屏 Timer? _timer; // 定时器 @override
void initState() {
super.initState(); // 初始化定时器,在每3秒钟检查一次是否需要退出全屏模式
_timer = Timer.periodic(Duration(seconds: 3), (timer) {
if (_isFullScreen) {
setState(() {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]);
_isFullScreen = false;
});
}
});
} @override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
if (_isFullScreen) {
// 如果已经全屏就退出全屏
setState(() {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]);
_isFullScreen = false;
});
} else {
// 如果不是全屏就进入全屏
setState(() {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive, overlays: []);
_isFullScreen = true;
});
}
},
onVerticalDragUpdate: (DragUpdateDetails details) {
if (_isFullScreen) {
// 如果是全屏就退出全屏
setState(() {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]);
_isFullScreen = false;
});
}
},
child: Container(
color: Colors.white, // 设置容器背景颜色为白色
child: Center(
child: Text('点击屏幕进入全屏,滑动屏幕退出全屏'), // 在屏幕中央显示文本
),
),
);
} @override
void dispose() {
_timer?.cancel(); // 取消定时器
super.dispose();
}
}

---

flutter中去除导航栏与状态栏的更多相关文章

  1. Flutter布局--appbar导航栏和状态栏

    MaterialApp 先看下上图的具体用法:1. title:标题2. actions:表示右侧的按钮的动作3. leading:表示左侧的按钮的动作4. flexibleSpace:5. back ...

  2. zhuang 定制iOS 7中的导航栏和状态栏

    近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也就意味着导航栏 ...

  3. iOS 7 教程:定制iOS 7中的导航栏和状态栏

    目录(?)[-] iOS 7中默认的导航栏 设置导航栏的背景颜色 在导航栏中使用背景图片 定制返回按钮的颜 修改导航栏标题的字体 修改导航栏标题为图片 添加多个按钮 修改状态栏的风格 隐藏状态栏 总结 ...

  4. (转)定制iOS 7中的导航栏和状态栏

    近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也就意味着导航栏 ...

  5. 定制iOS 7中的导航栏和状态栏

    本文转载至 http://www.cocoachina.com/industry/20131104/7287.html 跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外 ...

  6. iOS去除导航栏和tabbar的1px横线

    1.在自己定义的导航栏中或者设计稿中经常需要去除导航栏的1px横线,主要是颜色太不协调了 去除之前的图片 要去除这1px的横线,首先应该知道它是什么,在Xcode的界面调试中可以看到,它其实是UIIm ...

  7. 【转】iOS中设置导航栏标题的字体颜色和大小

    原文网址:http://www.360doc.com/content/15/0417/11/20919452_463847404.shtml iOS中设置导航栏标题的字体颜色和大小,有需要的朋友可以参 ...

  8. Android 4.4 上实现透明导航栏和状态栏 Translucent system bar

    Translucent system UI styling To get the most impact out of your content, you can now use new window ...

  9. iOS中设置导航栏标题的字体颜色和大小

    iOS中设置导航栏标题的字体颜色和大小,有需要的朋友可以参考下. 在平时开发项目的时候,难免会遇到修改导航栏字体大小和颜色的需求,一般使用自定义视图的方法,其实还存在一种方法. 方法一:(自定义视图的 ...

  10. Android 动态隐藏显示导航栏,状态栏

    Talk is cheap, show me the code. --Linus Torvalds Okay, here: 一.导航栏: [java] view plain copy private  ...

随机推荐

  1. 爬虫系列——requests

    文章目录 一 介绍 二 基于GET请求 三 基于POST请求 四 响应Response 五 高级用法 一 介绍 介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,reques ...

  2. Django框架——Django与Ajax、分页器

    文章目录 1 Django与Ajax 一 什么是Ajax 优点: 二 基于jquery的Ajax实现 Ajax-->服务器-->Ajax执行流程图 三 案例 一 通过Ajax,实现前端输入 ...

  3. Go方法特性详解:简单性和高效性的充分体现

    本文深入探讨了Go语言中方法的各个方面,包括基础概念.定义与声明.特性.实战应用以及性能考量.文章充满技术深度,通过实例和代码演示,力图帮助读者全面理解Go方法的设计哲学和最佳实践. 关注[TechL ...

  4. EXCEL表格,当字段值超出单元格的区域时,如何不显示??

    问题阐述:当导出Excel表格的数据中的某一列字段的值超过单元格可以展示的范围,并且在Excel表格中展示为如下: 最终结果展示如下: 解决过程: 1.选中执行的单元格 2.右键选中"设置单 ...

  5. 【sqli-labs】学习--待续

    预备知识: 数字型注入: 这种sql语句中处理的是整型,不需要使用单引号来闭合变量的值. 首先输入id=1',此时因为不是整型,sql语句会执行出错,抛出异常. 然后输入id=1 and 1=1,此时 ...

  6. 详解GuassDB数据库权限命令:GRANT和REVOKE

    本文分享自华为云社区<GuassDB数据库的GRANT & REVOKE>,作者: Gauss松鼠会小助手2 . 一.GaussDB的权限概述 在数据库中,对象的创建者将成为该对象 ...

  7. PXE批量网络装机

    PXE高效批量网络装机 系统装机的三种引导方式 1.硬盘 2.光驱(u盘) 3.网络启动 pxe 系统安装过程 加载boot loader Boot Loader 是在操作系统内核运行之前运行的一段小 ...

  8. 企业微信获取code

    String url="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+AuthUtil.APPID   + ...

  9. java固定窗口大小

    this.setResizable(false);//////frame.setResizable(false)

  10. 最小生成树(Kruskal Prim)

    最小生成树 (克鲁斯卡尔算法) Kruskal 给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数. 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible. 给 ...