美文网首页
Flutter Widget 001: SafeArea

Flutter Widget 001: SafeArea

作者: 狂奔的胖蜗牛 | 来源:发表于2021-03-20 17:39 被阅读0次

1.概要

一般情况下,正常的手机屏幕是一个完整的矩形,我们用Flutter进行布局的时候,可正常的从顶部布局到底部,如下所示:


image.png

但是,当我们手机屏幕不是完整矩形时,比如刘海屏等异形屏幕时,顶部和底部的部分会被遮挡住,如下所示:


image.png
为了解决不同屏幕的问题,Flutter有了SafeArea,在SafeArea的child里面进行布局,就不会受屏幕的影响,内容不会被遮盖住。

2.源码

SafeArea的源码:

class SafeArea extends StatelessWidget {
  const SafeArea({
    Key key,
    this.left = true,
    this.top = true,
    this.right = true,
    this.bottom = true,
    this.minimum = EdgeInsets.zero,
    this.maintainBottomViewPadding = false,
    @required this.child,
  }) : assert(left != null),
       assert(top != null),
       assert(right != null),
       assert(bottom != null),
       super(key: key);
......
}

1.我们可以通过left/top/right/bottom指定哪些方向不会被遮盖住,默认是全部。
2.通过minimum可以指定最小的被遮盖的距离,默认是0。
3.当设置Scaffold.resizeToAvoidBottomInsets: false时,此时如果屏幕中弹出键盘,界面内容会发生位移,可设置maintainBottomViewPadding=true解决此问题。

3.示例

当不使用SafeArea时:

return MaterialApp(
      home: Scaffold(
        body: Container(
          color: Colors.red,
        ),
      ),
    );
image.png

使用SafeArea后:

return MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: Container(
            color: Colors.red,
          ),
        ),
      ),
    );
image.png

相关文章

  • Flutter Widget 001: SafeArea

    1.概要 一般情况下,正常的手机屏幕是一个完整的矩形,我们用Flutter进行布局的时候,可正常的从顶部布局到底部...

  • Flutter 常用 Widget 介绍

    级别:★☆☆☆☆标签:「Flutter 常用 Widget」「SafeArea」「Expanded」「Wrap」「...

  • Flutter Widget(二)SafeArea

    博客地址:flutterall.com 先看代码: 可以看到,在刘海屏幕中,显示位置不是我们期待的。大部分刘海区域...

  • SafeArea Widget

    SafeArea可以通过填充来使得子控件适配手机屏幕(刘刘海屏之类的).列入在iPhone X中显示一个列表,可以...

  • SafeArea widget

    SafeArea widget是适配手机屏幕---刘海屏,底部虚拟按钮等.

  • Flutter在iPhone X构建bottomNavigati

    使用 SafeArea widget来包裹tabbar的widget即可解决问题 问题如下 问题代码 解决的关键代...

  • flutter笔记汇总

    Widget 基础Widget flutter笔记(一)-----官方示例&代码解读 flutter笔记(二)-...

  • Flutter之Widget

    Widget说明 在Flutter中几乎所有的对象都是一个 widget。Flutter 中是通过 Widget ...

  • Flutter学习总结之三 Widget详解

    一.Flutter Widget 在 Flutter 中一切的显示都是 Widget ,Widget 是一切的基础...

  • Flutter入门07 -- 渲染原理与Key的使用

    Flutter的渲染流程 Widget 在Flutter中万物皆为Widget,构成一棵Widget树,Widge...

网友评论

      本文标题:Flutter Widget 001: SafeArea

      本文链接:https://www.haomeiwen.com/subject/wqywcltx.html