1. 安全区域处理
- 什么是安全区域
iOS11引入了safe area的概念,safe area 定义了视图的可视区域,保证在safe area 区域内的子view不会被遮挡。引出这个概念可能是因为iPhone x 的顶部刘海和底部的home操作区域的问题。本文将介绍如何使用 safe area进行布局。
- 为什么需要处理安全区域
比如:body使用ListView包裹的时候,就会出现顶部的安全区域就会空白留出来,这时需要我们处理掉
MediaQuery.removePadding(
removeTop: true, //这里可以对上下左右的安全区域处理
context: context,
)
2. 滚动事件监听
- 事件的监听在我们的实际开发当中应用十分的广泛,以下我们通过一个例子来了解一下怎么实现滚动事件的监听
NotificationListener(
onNotification: (scrollNotification){ //这里理解为一个匿名函数、或是iOS中的block更为贴切
if(scrollNotification is ScrollUpdateNotification && scrollNotification.depth == 0){
_onScroll(scrollNotification.metrics.pixels);
}
},
ScrollUpdateNotification判断是为了确保是由滚动触发的offset的改变,scrollNotification.depth == 0是表示监听的child的深度,怎么理解呢?例如我们监听的child是一个ListView,但是ListView里面又包含一层Banner,这时候就会监听两个scroll的滚动事件,depth是给到我们选择性的监听指定widget!










网友评论