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 中不显示状态栏的主要内容,如果未能解决你的问题,请参考以下文章

c#第二个状态栏不显示信息

使用流在 Flutter 中不起作用检查身份验证状态

IOS 7状态栏不显示? [复制]

修复了 PhoneGap 中 iOS 状态栏重叠但状态栏不显示的问题

Apple Watch:从基于页面的导航显示模式屏幕后,状态栏不可见

在H5中如何设置才能让安卓状态栏显示颜色?