HarmonyOS 下拉刷新 上拉加載更多 第二種實現(xiàn)方式
通過Refresh組件Api實現(xiàn)下拉刷新,上拉加載更多
- refreshing:當前組件是否正在刷新。
- offset:下拉起點距離組件頂部的距離。默認值:16,單位vp。
- friction:下拉摩擦系數(shù),取值范圍為0到100。
下拉刷新實現(xiàn)
- 刷新狀態(tài):通過控制refreshing來控制;
- 刷新狀態(tài)變更:通過onStateChange回調(diào)監(jiān)聽是刷新狀態(tài)的時候,刷新列表數(shù)據(jù);
上拉加載更多實現(xiàn)
使用onReachEnd事件來實現(xiàn)上拉加載更多。當用戶滾動到列表底部時,觸發(fā)該事件,并在事件處理函數(shù)中調(diào)用數(shù)據(jù)加載的方法。
Refresh({refreshing:$$this.isRefreshing,offset:30,friction:70}){
Stack({alignContent:Alignment.Top}){
List(){
ListItem(){
Column(){
// 列表內(nèi)容實現(xiàn)
}
}
}.height('100%')
.width('100%').margin({top:90})
.onReachEnd(()=>{
// 上拉加載更多:此處向數(shù)組尾部添加一頁數(shù)據(jù)
})
}
}.onStateChange((refreshStatus:RefreshStatus)=>{
if(refreshStatus==RefreshStatus.Refresh){
// 下拉刷新:此處刷新數(shù)組數(shù)據(jù)
}
})
.onRefreshing(() => {
// 進入刷新狀態(tài)
console.log(this.isRefreshing + '')
setTimeout(() => {
// 結(jié)束刷新狀態(tài)
this.isRefreshing = false
}, 1000)
console.log('onRefreshing test')
})

浙公網(wǎng)安備 33010602011771號