Flutter系列(四)《安全區域的處理以及滾動事件監聽》

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!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章