Flutter 中不显示状态栏
Posted
技术标签:
【中文标题】Flutter 中不显示状态栏【英文标题】:Status bar doesn't show up in Flutter 【发布时间】:2020-02-15 10:13:41 【问题描述】:Flutter 应用未显示状态栏 (PFA)。我不想全屏查看我的应用程序。 有什么办法可以解决这个问题。
main.dart
class MyApp extends StatelessWidget
// This widget is the root of your application.
@override
Widget build(BuildContext context)
return MaterialApp(
title: '',
theme: ThemeData(
primarySwatch: Colors.purple,
fontFamily: 'FIRSNEUE'
),
home: SplashScreenFirst(),
routes: <String, WidgetBuilder>
'/dashboard': (BuildContext context) => Dashboard(title: 'HOUSR'),
'/login': (BuildContext context) => Login(),
'/service-dashboard': (BuildContext context) => Service(),
'/service-exists': (BuildContext context) => ServiceExists(),
'/partnerOffers' : (BuildContext context) => Partner(),
'/visitorRequest' : (BuildContext context) => VisitorRequest(),
'/vistorRequestSuccess' : (BuildContext context) => VisitorRequestSuccess(),
'/mealPlan' : (BuildContext context) => MealPlan()
,
);
登录.dart
return Scaffold(
key: _scaffoldKey,
body: ListView(
shrinkWrap: true,
padding: EdgeInsets.all(15.0),
children: <Widget>[
Center(
child: Container(
child: Column(
children: <Widget>[
Container(
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
width: double.infinity,
height: 720,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
SizedBox(height: 65.0),
SizedBox(
height: 43.0,
width: 136,
child: Image.asset(
"images/logo.png",
fit: BoxFit.cover,
),
),
SizedBox(height: 45.0),
Text(
'Please login to continue',
style: TextStyle(
color: Color(0xffB13F8F),
fontSize: 16,
letterSpacing: 0.15),
),
SizedBox(height: 145.0),
emailField,
_error
? _phoneController.text.length > 0
? (SizedBox(
height: 1,
))
: Container(
padding: EdgeInsets.only(top: 20),
child: Text(
'Something went wrong. Please try again',
style: TextStyle(
color: Colors.redAccent,
fontSize: 16),
),
)
: (SizedBox(
height: 1,
)),
SizedBox(
height: 104.0,
),
_isLoading
? Center(child: CircularProgressIndicator())
: _isDisabled
? loginButtonDisabled
: loginButon,
SizedBox(
height: 15.0,
),
],
))
],
),
),
),
]));
【问题讨论】:
请添加您的代码 【参考方案1】:对于 IOS: 请检查创建flutter项目时创建的两个文件,并将值从false更新为true。
./ios/Runner/Info.plist
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/> -> Change to true
【讨论】:
【参考方案2】:只需使用 SafeArea 小部件包裹您的脚手架, 并且您的顶部边缘不会触摸状态栏
【讨论】:
【参考方案3】:请检查创建flutter项目时创建的两个文件并注释掉或删除。
./ios/Runner/Info.plist<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIStatusBarHidden</key> <- <here>
<true/> <- <here>
<key>UISupportedInterfaceOrientations</key>
./android/app/src/main/res/values/styles.xml
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowFullscreen">true</item> <- <here>
【讨论】:
【参考方案4】:我不知道你说的状态栏是不是指应用栏。如果您不使用 Scaffold
作为主要小部件,这可能不存在。将所有代码包装在:
Scaffold(
appBar: AppBar(
title: const Text('Sample Code'),
),
body: //rest of code...
【讨论】:
以上是关于Flutter 中不显示状态栏的主要内容,如果未能解决你的问题,请参考以下文章
修复了 PhoneGap 中 iOS 状态栏重叠但状态栏不显示的问题