愛在花開的季節 发表于 2024-9-27 14:25:30

纯血鸿蒙实战开发—如何添加下拉革新组件PullToRefresh

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.效果

https://i-blog.csdnimg.cn/blog_migrate/68908f782ab0aeac0756ddb6675f672a.png
末了

假如你想快速提升鸿蒙技能,那么可以直接领取这份包含了:【OpenHarmony多媒体技能、Stage模型、ArkUI多端摆设、分布式应用开发、音频、视频、WebGL、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技能知识点。
鸿蒙Next全套VIP学习资料←点击领取!(安全链接,放心点击)
1.鸿蒙焦点技能学习路线

https://i-blog.csdnimg.cn/blog_migrate/36c80c89abe32de74b3d2808bc0f5e14.png
2.大厂面试必问面试题

https://i-blog.csdnimg.cn/blog_migrate/54545dc24db55664221a0a114662baa7.png
3.鸿蒙南向开发技能

https://i-blog.csdnimg.cn/blog_migrate/c8692deacd7801cfc886f2aeb5c9de68.png
 4.鸿蒙APP开发必备

https://i-blog.csdnimg.cn/blog_migrate/c510342c258bd907f950db431ae04b02.png
 5.HarmonyOS Next 最新全套视频教程

https://i-blog.csdnimg.cn/blog_migrate/2c1c668d3a62f5da17582277c8c6b3af.png

 6.鸿蒙生态应用开发白皮书V2.0PDF

https://i-blog.csdnimg.cn/blog_migrate/fd3ae1cb27c9387092ad0fe7c45608ee.png
这份全套完整版的学习资料已经全部打包好,朋友们假如必要可以点击→鸿蒙Next全套VIP学习资料免费领取(安全链接,放心点击)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 纯血鸿蒙实战开发—如何添加下拉革新组件PullToRefresh