CupertinoPageScaffold的儿童小部件是CupertinoNavigationBar的幕后推手

Fra*_*per 5 flutter

我正在尝试将内容放在CupertinoNavigationBar下面.

但是CupertinoNavigationBar部分涵盖了内容小部件.

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

下面是截图和我的代码

iOS模拟器截图

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),
        ));
  }
}
Run Code Online (Sandbox Code Playgroud)

die*_*per 9

把你的孩子包裹在里面SafeArea:

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

并且不要忘记使用CupertinoApp而不是MaterialApp