1.PullToRefresh
2.添加依靠
- ohpm install @ohos/pulltorefresh
复制代码 oh-package.json5版本修改为2.0.1。
- {
- "name": "base_demo",
- "version": "1.0.0",
- "description": "Please describe the basic information.",
- "main": "",
- "author": "",
- "license": "",
- "dependencies": {
- "@ohos/pulltorefresh": "2.0.1"
- },
- "devDependencies": {
- "@ohos/hypium": "1.0.6"
- }
- }
复制代码 3.示例代码
3.1 PullToRefreshPage测试页面
- import { PullToRefresh } from '@ohos/pulltorefresh'
- @Entry
- @Component
- struct PullToRefreshPage {
- TAG = 'PullToRefreshPage'
- @State itemList: string[] = ['北京', '天津', '上海', '深圳', '珠海', '厦门', '青岛', '大连', '威海', '烟台', '旅顺', '长春', '哈尔滨', '沈阳']
- private scroller: Scroller = new Scroller();
- @Builder
- navigationTitle() {
- Column() {
- Text('城市')
- .fontColor('#182431')
- .fontSize(30)
- .lineHeight(41)
- .fontWeight(700)
- }.alignItems(HorizontalAlign.Start)
- }
- @Builder
- buildList() {
- List({ space: 3, scroller: this.scroller }) {
- ForEach(this.itemList, (item, index) => {
- ListItem() {
- Row() {
- Image($r('app.media.icon'))
- .width(40)
- .height(40)
- .margin({ left: 10, right: 20 })
- Text(`${index}.${item}`).fontSize(20)
- }.width('100%')
- .height('100%')
- }
- .width('100%')
- .height(60)
- })
- }
- .divider({ strokeWidth: 0.5, color: Color.Green, startMargin: 10, endMargin: 10 })
- .width('100%')
- // 特别注意:必须设置列表为滑动到边缘无效果,否则无法触发pullToRefresh组件的上滑下拉方法。
- .edgeEffect(EdgeEffect.None)
- }
- build() {
- Navigation() {
- PullToRefresh({
- // 必传项,列表组件所绑定的数据
- data: this.itemList,
- // 必传项,需绑定传入主体布局内的列表或宫格组件
- scroller: this.scroller,
- // 必传项,自定义主体布局,内部有列表或宫格组件
- customList: () => {
- this.buildList()
- },
- // 可选项,下拉刷新回调
- onRefresh: () => {
- console.info(`${this.TAG} onRefresh`)
- return new Promise<string>((resolve, reject) => {
- // 模拟网络请求操作,请求网络2秒后得到数据,通知组件,变更列表数据
- console.info(`${this.TAG} Promise`)
- setTimeout(() => {
- resolve('刷新成功');
- console.info(`${this.TAG} resolve`)
- //this.itemList = this.dataNumbers;
- const citys: string[] = ['上拉刷新出来的郑州', '上拉刷新出来的济南', '上拉刷新出来的沈阳']
- this.itemList = this.itemList.concat(citys)
- console.info(`${this.TAG} itemList:${this.itemList} `)
- }, 1000);
- });
- },
- // 可选项,上拉加载更多回调
- onLoadMore: () => {
- return new Promise<string>((resolve, reject) => {
- console.info(`${this.TAG} onLoadMore Promise`)
- // 模拟网络请求操作,请求网络2秒后得到数据,通知组件,变更列表数据
- setTimeout(() => {
- console.info(`${this.TAG} onLoadMore resolve`)
- resolve('');
- this.itemList.push('上拉加载出来的武汉')
- console.info(`${this.TAG} onLoadMore itemList:${this.itemList} `)
- }, 1000);
- });
- },
- customLoad: null,
- customRefresh: null,
- })
- }
- .title(this.navigationTitle())
- .titleMode(NavigationTitleMode.Mini)
- }
- }
复制代码 3.2.注意事项
List必须设置滑动到边沿没有效果
- edgeEffect(EdgeEffect.None)
复制代码 否则无法触发pullToRefresh组件的上滑下拉方法。
4.效果
末了
假如你想快速提升鸿蒙技能,那么可以直接领取这份包含了:【OpenHarmony多媒体技能、Stage模型、ArkUI多端摆设、分布式应用开发、音频、视频、WebGL、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技能知识点。
鸿蒙Next全套VIP学习资料←点击领取!(安全链接,放心点击)
1.鸿蒙焦点技能学习路线
2.大厂面试必问面试题
3.鸿蒙南向开发技能
4.鸿蒙APP开发必备
5.HarmonyOS Next 最新全套视频教程
6.鸿蒙生态应用开发白皮书V2.0PDF
这份全套完整版的学习资料已经全部打包好,朋友们假如必要可以点击→鸿蒙Next全套VIP学习资料免费领取(安全链接,放心点击)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |