wangliang_wd

feat:优化下拉刷新动效

import { PeopleShipRecommendComponent } from './PeopleShipRecommendComponent';
import { PeopleShipMainViewModel } from '../../viewmodel/PeopleShipMainViewModel';
import { HttpUtils } from 'wdNetwork/Index';
import { Logger, DateTimeUtils, EmitterEventId, EmitterUtils, ToastUtils } from 'wdKit';
import { Logger, DateTimeUtils, EmitterEventId, EmitterUtils, ToastUtils, UserDataLocal, StringUtils } from 'wdKit';
import { autoRefresh, onActionEnd, onActionStart, onActionUpdate,closeRefresh } from '../../utils/NewPullDownRefresh';
import {
... ... @@ -235,6 +235,12 @@ export struct PeopleShipMainComponent {
.scrollBar(BarState.Off)
.width('100%')
.height('100%')
.onScrollIndex((start: number, end: number) => {
// Listen to the first index of the current list.
this.pageModel.startIndex = start;
// 包含了 头尾item,判断时需要考虑+3
this.pageModel.endIndex = end ;
})
}
@Builder
... ... @@ -558,6 +564,12 @@ export struct PeopleShipMainComponent {
if (this.navIndex === this.currentTopNavSelectedIndex && this.pageAttentionChange) {
this.getData()
}
//退出登录的时候 刷新界面
let userID = UserDataLocal.getUserId()
if (!StringUtils.isNotEmpty(userID)) {
this.getData()
}
}
onAutoRefresh(changedPropertyName: string) {
... ...
... ... @@ -181,6 +181,7 @@ export function autoRefresh(pageModel: PageModel,onRefresh: () => void = () => {
return
}
pageModel.isVisiblePullDown = true;
pageModel.isHandRefreshing = true;
pageModel.offsetY = vp2px(pageModel.pullDownRefreshHeight);
pullRefreshState(pageModel, RefreshState.Refreshing);
pageModel.currentPage = 1;
... ... @@ -242,8 +243,18 @@ export function pullRefreshState(pageModel: PageModel, state: number) {
export function closeRefresh(pageModel: PageModel, isRefreshSuccess: boolean) {
let self = pageModel;
// 取消超时关闭定时器
clearTimeout(self.refreshTimeoutTimerId)
setTimeout(()=>{
closeRefreshLastStep(pageModel,isRefreshSuccess)
}, self.isHandRefreshing ? 800 : 0)
}
function closeRefreshLastStep (pageModel: PageModel, isRefreshSuccess: boolean) {
let self = pageModel;
pullRefreshState(pageModel,RefreshState.GOLOADED);
//定时器时间就是'已刷新至最新'停留时间
setTimeout(() => {
let delay = Const.RefreshConstant_DELAY_PULL_DOWN_REFRESH;
if (self.isCanRefresh === true) {
... ... @@ -257,6 +268,7 @@ export function closeRefresh(pageModel: PageModel, isRefreshSuccess: boolean) {
pullRefreshState(pageModel, RefreshState.DropDown);
self.isVisiblePullDown = false;
self.isPullRefreshOperation = false;
self.isHandRefreshing = false
}
}, () => {
self.offsetY = 0;
... ...
... ... @@ -185,6 +185,7 @@ export function autoRefresh(pageModel: PageModel, pageAdvModel: PageAdModel) {
return
}
pageModel.isVisiblePullDown = true;
pageModel.isHandRefreshing = true
pageModel.offsetY = vp2px(pageModel.pullDownRefreshHeight);
pullRefreshState(pageModel, RefreshState.Refreshing);
pageModel.currentPage = 1;
... ... @@ -248,6 +249,14 @@ export function closeRefresh(pageModel: PageModel, isRefreshSuccess: boolean) {
// 取消超时关闭定时器
clearTimeout(self.refreshTimeoutTimerId)
setTimeout(()=>{
closeRefreshLastStep(pageModel,isRefreshSuccess)
}, self.isHandRefreshing ? 800 : 0)
}
function closeRefreshLastStep (pageModel: PageModel, isRefreshSuccess: boolean) {
let self = pageModel;
pullRefreshState(pageModel,RefreshState.GOLOADED);
//定时器时间就是'已刷新至最新'停留时间
... ... @@ -264,10 +273,10 @@ export function closeRefresh(pageModel: PageModel, isRefreshSuccess: boolean) {
pullRefreshState(pageModel, RefreshState.DropDown);
self.isVisiblePullDown = false;
self.isPullRefreshOperation = false;
self.isHandRefreshing = false
}
}, () => {
self.offsetY = 0;
})
}, self.isCanRefresh ? Const.DELAY_ANIMATION_DURATION : 0);
}
\ No newline at end of file
... ...
... ... @@ -61,6 +61,7 @@ export default class PageModel {
endIndex = 0;
downY = 0;
lastMoveY = 0;
isHandRefreshing:boolean = false //是否手动刷新
isRefreshing: boolean = false;
isCanRefresh = false;
isPullRefreshOperation = false;
... ...