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