Flutter Widget 之 SafeArea
前言
现今的只能设备已经不能提供给应用程序规整的矩形界面来运行了,消息提示栏总是不断闪出,
而一些圆角或者带凹槽的屏幕,也会让应用程序的布局变得更加复杂
这就是为什么Flutter集成了SafeArea功能了
class SafeArea extends StatelessWidget (
/// Create a widget that avoids opearting system interfaces.
...
)
它使用MediaQuery来检测屏幕的尺寸使应用程序的大小能与屏幕匹配
@override
Widget build(BuildContext context) {
final EdgeInsets padding = MediaQuery.of(context);
// Bottom padding has been consumed - i.e. by the keyboard
if (data.padding.bottom == 0.0 && data.viewInsets.bottom != 0.0 && maintainBottomViewPadding)
padding = padding.copyWith(bottom: data.viewPadding.bottom);
padding: EdgeInsets.only(
left: math.max(left ? padding.left : 0.0, minimum.left),
top: math.max(top ? padding.top : 0.0, minimum.top),
right: math.max(right ? padding.right : 0.0, minimum.right),
bottom: math.max(bottom ? padding.bottom : 0.0, minimum.bottom),
),child: MediaQuery.removePadding(
context: context,
removeLeft: left,
removeTop: top,
removeRight: right,
removeBottom: bottom,
child: child,
),
);
}
如果你的App看起来是这样的
ListView(
children: List.generate(
100,
(i) => Text('This is some text'),
)
)
只要使用SafeArea进行封装
SafeArea(
child:ListView(
children: List.generate(
100,
(i) => Text('This is some text'),
)
)
)
无论是在iOS环境,还是Android环境它都能保证应用内容正常显示
你甚至可以指定特定的显示区域
SafeArea(
child: ListView(),
top: true,
bottom: true,
left: false,
right: true
)
使用Scaffold来进行封装就能起到很好的效果
@override
Widget build(BuildContext context){
return Scaffold(
body: SafeArea(
child: TonsOfOtherWidgets(),
),
);
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanfbahb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24