ListView的基礎創(chuàng)建使用有三種方式:
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名申請、網(wǎng)站空間、營銷軟件、網(wǎng)站建設、中江網(wǎng)站維護、網(wǎng)站推廣。
通過默認構造函數(shù)來創(chuàng)建列表,應用場景 = 短列表
這種方式創(chuàng)建的列表存在一個問題:對于那些長列表或者需要較昂貴渲染開銷的子組件,即使還沒有出現(xiàn)在屏幕中但仍然會被ListView所創(chuàng)建,這將是一項較大的開銷,使用不當可能引起性能問題甚至卡頓。
長列表
列表子項之間需要分割線
ListView的進階使用主要包括:下拉刷新 上拉加載
在Flutter中,ListView結合RefreshIndicator組件實現(xiàn)下拉刷新
通過包裹一層RefreshIndicator,自定義onRefresh回調方法實現(xiàn)
方式有兩種:
通過ListView.controller屬性可以判斷ListView是否滑動到了底部,再進行上拉加載
NotificationListener是一個Widget,可監(jiān)聽子Widget發(fā)出的Notification
ListView在滑動時中會發(fā)出ScrollNotification類型的通知,可通過監(jiān)聽該通知得到ListView的滑動狀態(tài),判斷是否滑動到了底部,從而進行上拉加載
NotificationListener有一個onNotification屬性,定義了監(jiān)聽的回調方法,通過它來處理加載更多邏輯
不定期分享關于 安卓開發(fā) 的干貨,追求 短、平、快 ,但 卻不缺深度 。
SingleChildScrollView 源碼定義如下:
需要注意的是, 通常 SingleChildScrollView 只應在期望的內(nèi)容不會超過屏幕太多時使用 ,這是因為 SingleChildScrollView 不支持基于 Sliver 的延遲加載模型,所以如果預計視口可能包含超出屏幕尺寸太多的內(nèi)容時,那么使用 SingleChildScrollView 將會非常昂貴(性能差),此時應該使用一些支持Sliver延遲加載的可滾動組件,如 ListView 。
示例1
下面是一個將大寫字母 A-Z 沿垂直方向顯示的例子,由于垂直方向空間會超過屏幕視口高度,所以我們使用SingleChildScrollView:
示例2
示例3 - 橫向滾動
ScrollView 是一個帶有滾動的視圖組件。
ScrollView 由三部分組成:
ScrollView 有以下常用屬性:
注:ScrollView 是一個抽象類,通常使用 CustomScrollView。
SliverAppBar 可以實現(xiàn)背景,標題,頂部導航欄聯(lián)動,漸隱漸出動畫。