セーフエリア SafeArea を使って、 iPhone X で適切なコンテンツ領域に表示されるようにします。

使い方

SafeArea(child: Container(color: Colors.red))

などとすることで、引数 child に指定したウィジットを適切なコンテンツ領域に表示することができます。

困ったら、基本的に、 SafeArea で囲っておくとよいでしょう。

コードの例

例えば、コードは以下のようになります。

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'わかりやすい'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: SafeArea(child: Container(color: Colors.red)),
    );
  }
}

スクリーンショット

セーフエリアの領域は赤く、そして、外側は白色で表示されました。

参考リンク