Toggle navigation
Toggle navigation
This project
Loading...
Sign in
developOne
/
harmonyPool
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
wangliang_wd
2024-09-29 16:11:51 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
9c7fea6d1d01afe96894c85aa0b6e0ab8fe644b8
9c7fea6d
1 parent
71c0cec6
feat:优化下拉刷新动效
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
2 deletions
sight_harmony/features/wdComponent/src/main/ets/components/peopleShip/PeopleShipMainComponent.ets
sight_harmony/features/wdComponent/src/main/ets/utils/NewPullDownRefresh.ets
sight_harmony/features/wdComponent/src/main/ets/utils/PullDownRefresh.ets
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageModel.ets
sight_harmony/features/wdComponent/src/main/ets/components/peopleShip/PeopleShipMainComponent.ets
View file @
9c7fea6
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) {
...
...
sight_harmony/features/wdComponent/src/main/ets/utils/NewPullDownRefresh.ets
View file @
9c7fea6
...
...
@@ -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;
...
...
sight_harmony/features/wdComponent/src/main/ets/utils/PullDownRefresh.ets
View file @
9c7fea6
...
...
@@ -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
...
...
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageModel.ets
View file @
9c7fea6
...
...
@@ -61,6 +61,7 @@ export default class PageModel {
endIndex = 0;
downY = 0;
lastMoveY = 0;
isHandRefreshing:boolean = false //是否手动刷新
isRefreshing: boolean = false;
isCanRefresh = false;
isPullRefreshOperation = false;
...
...
Please
register
or
login
to post a comment