透過Refresh元件Api實現下拉重新整理,上拉載入更多
- refreshing:當前元件是否正在重新整理。
- offset:下拉起點距離元件頂部的距離。預設值:16,單位vp。
- friction:下拉摩擦係數,取值範圍為0到100。
下拉重新整理實現
- 重新整理狀態:透過控制refreshing來控制;
- 重新整理狀態變更:透過onStateChange回撥監聽是重新整理狀態的時候,重新整理列表資料;
上拉載入更多實現
使用onReachEnd事件來實現上拉載入更多。當使用者滾動到列表底部時,觸發該事件,並在事件處理函式中呼叫資料載入的方法。
Refresh({refreshing:$$this.isRefreshing,offset:30,friction:70}){
Stack({alignContent:Alignment.Top}){
List(){
ListItem(){
Column(){
// 列表內容實現
}
}
}.height('100%')
.width('100%').margin({top:90})
.onReachEnd(()=>{
// 上拉載入更多:此處向陣列尾部新增一頁資料
})
}
}.onStateChange((refreshStatus:RefreshStatus)=>{
if(refreshStatus==RefreshStatus.Refresh){
// 下拉重新整理:此處重新整理陣列資料
}
})
.onRefreshing(() => {
// 進入重新整理狀態
console.log(this.isRefreshing + '')
setTimeout(() => {
// 結束重新整理狀態
this.isRefreshing = false
}, 1000)
console.log('onRefreshing test')
})