Flutter 键盘在较旧的Android版本上退出全屏模式

Flutter 键盘在较旧的Android版本上退出全屏模式,flutter,flutter-layout,Flutter,Flutter Layout,我试图在我的应用程序中使用全屏,但我注意到,在使用安卓8.1(API 27)的设备上,当用户打开键盘时,应用程序退出全屏模式,除非重建ui,否则不会恢复,有人有解决方案吗 我也在Android 7.1(API 25)上进行了测试,这个问题更容易解决,唯一没有回到全屏的是顶部的条,但是,下面的代码只在新的Android(API 28+)上完美地工作 代码: 您应该在initState中调用它。工作代码: import 'package:flutter/material.dart'; import

我试图在我的应用程序中使用全屏,但我注意到,在使用安卓8.1(API 27)的设备上,当用户打开键盘时,应用程序退出全屏模式,除非重建ui,否则不会恢复,有人有解决方案吗

我也在Android 7.1(API 25)上进行了测试,这个问题更容易解决,唯一没有回到全屏的是顶部的条,但是,下面的代码只在新的Android(API 28+)上完美地工作

代码:


您应该在
initState
中调用它。工作代码:

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

void main() {
runApp(MaterialApp(home: MyApp()));
}

class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
@override
void initState() {
 // TODO: implement initState
 super.initState();
 SystemChrome.setEnabledSystemUIOverlays([]);
}

@override
Widget build(BuildContext context) {
 return Scaffold(
   body: SafeArea(
       child: Column(
     mainAxisAlignment: MainAxisAlignment.center,
     children: [
       Flexible(flex: 1, child: Text('Fullscreen test')),
       Flexible(
         flex: 1,
         child: TextFormField(
           controller: TextEditingController(),
         ),
       ),
       Flexible(flex: 1, child: SizedBox())
     ],
   )),
 );
}
}
导入“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
void main(){
runApp(MaterialApp(home:MyApp());
}
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
@凌驾
void initState(){
//TODO:实现initState
super.initState();
SystemChrome.SetEnabledSystemEmioVerlays([]);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:安全区(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
灵活(flex:1,child:Text(“全屏测试”),
灵活的(
弹性:1,
子项:TextFormField(
控制器:TextEditingController(),
),
),
灵活(flex:1,child:SizedBox())
],
)),
);
}
}

您应该在
initState
中调用它。工作代码:

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

void main() {
runApp(MaterialApp(home: MyApp()));
}

class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
@override
void initState() {
 // TODO: implement initState
 super.initState();
 SystemChrome.setEnabledSystemUIOverlays([]);
}

@override
Widget build(BuildContext context) {
 return Scaffold(
   body: SafeArea(
       child: Column(
     mainAxisAlignment: MainAxisAlignment.center,
     children: [
       Flexible(flex: 1, child: Text('Fullscreen test')),
       Flexible(
         flex: 1,
         child: TextFormField(
           controller: TextEditingController(),
         ),
       ),
       Flexible(flex: 1, child: SizedBox())
     ],
   )),
 );
}
}
导入“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
void main(){
runApp(MaterialApp(home:MyApp());
}
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
@凌驾
void initState(){
//TODO:实现initState
super.initState();
SystemChrome.SetEnabledSystemEmioVerlays([]);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:安全区(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
灵活(flex:1,child:Text(“全屏测试”),
灵活的(
弹性:1,
子项:TextFormField(
控制器:TextEditingController(),
),
),
灵活(flex:1,child:SizedBox())
],
)),
);
}
}

感谢您的快速回复!但问题是,当您打开键盘时,它会覆盖覆盖设置:/因此将设置置于initState无法修复。谢谢您的快速回复!但问题是,当您打开键盘时,它会覆盖覆盖设置:/因此将设置置于initState无法修复