flutter - CupertinoPageScaffold 的子小部件位于 CupertinoN

我正在尝试将内容放在 CupertinoNavigationBar 下方。

但内容小部件被 CupertinoNavigationBar 部分覆盖。

我不明白为什么子 Column 没有垂直偏移,因此顶部没有被 CupertinoNavigationBar 覆盖。

下面是截图,以及我的代码

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

class PersonalInfoEditor extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar: buildNavigationBar(context),
      child: Column(
        children: <Widget>[
          Text('Personal Info'),
          Text('t1'),
        ],
      ),
    );
  }

  CupertinoNavigationBar buildNavigationBar(BuildContext context) {
    return CupertinoNavigationBar(        
        trailing: CupertinoButton(
          child: Text('Save', style: TextStyle(color: CupertinoColors.activeBlue)),
          onPressed: () => Navigator.pop(context),
        ));
  }
}

最佳答案

将您的 child 包裹在 SafeArea 中:

        return CupertinoPageScaffold(
              navigationBar: buildNavigationBar(context),
              child: SafeArea(
                child: Column(
                  children: <Widget>[
                    Text('Personal Info'),
                    Text('t1'),
                  ],
                ),
              ),
            );

别忘了使用 CupertinoApp 而不是 MaterialApp

更多信息:https://api.flutter.dev/flutter/cupertino/CupertinoPageScaffold-class.html

关于flutter - CupertinoPageScaffold 的子小部件位于 CupertinoNavigationBar 后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52472220/

相关文章:

dart - 将 ListTile 图标左对齐

dart - Flutter 突然无法将 apk 安装到真机

dart - 在 Dart 的 Cloud Firestore 中添加文档后如何获取文档 ID

ios - flutter : Not Connecting to IOS Simulator in

android-studio - Flutter 如何在 Android Studio 中制作发布版

dart - Flutter:如何获取 http 请求的上传/下载进度

flutter - 构造函数中的 Key 参数是什么

dart - Flutter 如何将 String 转换为 List

javascript - Flutter 是否使用 Javascript 引擎之类的东西,例如 Re

flutter - 如何在 flutter 中向列添加滚动