美文网首页Fultter专题系列工作生活
Flutter系列(四)《安全区域的处理以及滚动事件监听》

Flutter系列(四)《安全区域的处理以及滚动事件监听》

作者: 清风徐来121 | 来源:发表于2019-07-04 15:22 被阅读0次

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!

相关文章

网友评论

    本文标题:Flutter系列(四)《安全区域的处理以及滚动事件监听》

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