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!