示例如下://1、RefreshPage.ets import { router } from '@kit.ArkUI' @Entry @Component struct RefreshPage { @State isRefreshing: boolean = false @State arr: String[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] pageTransition() { PageTransitionExit({ type: RouteType.Push, duration: 1000 }) .slide(SlideEffect.Bottom) } @Builder customRefreshComponent() { Row() { Column() { LoadingProgress().height(40) Text("正在刷新...").height(20) } .width('100%') }.align(Alignment.Center).borderStyle(BorderStyle.Solid).height(100) } build() { Column() { Refresh({ refreshing: $$this.isRefreshing, builder: this.customRefreshComponent() }) { List() { ForEach(this.arr, (item: string) => { ListItem() { Text('' + item) .width('100%') .height(100) .fontSize(16) .textAlign(TextAlign.Center) .borderRadius(10) .backgroundColor(0xFFFFFF) } }, (item: string) => item) } .width('100%') .height('100%') .divider({ strokeWidth: 1, color: Color.Yellow, startMargin: 10, endMargin: 10 }) .scrollBar(BarState.Off) } .onStateChange((status: RefreshStatus) => { if (status == RefreshStatus.Done) { router.pushUrl({ url: 'pages/SPage' }) } }) .onRefreshing(() => { setTimeout(() => { this.isRefreshing = false }, 2000) }) .backgroundColor(0x89CFF0) } } } //2、FPage.ets @Entry @Component struct FPage { @State message: string = 'Hello World'; pageTransition() { PageTransitionEnter({ type: RouteType.Push, duration: 1000 }) .slide(SlideEffect.Top) } build() { Column() { Text(this.message) } .justifyContent(FlexAlign.Center) .height('100%') .width('100%') } }
示例如下: