HarmonyOS使用Refresh下拉刷新问题

Refresh下拉刷新问题 Refresh里包含web时候刷新下拉不生效(下拉拉不动), 但是要是Refresh包含list控件就可以正常下拉。代码如下:

Refresh({ refreshing: $$this.isRefreshing }) { 
  Web({ src: $rawfile('view/home.html'), controller: this.controller }) 
    .javaScriptAccess(true) 
    .fileAccess(true) 
    .imageAccess(true) 
    .zoomAccess(true) 
    .javaScriptProxy({ 
      object: this.jsBridge, 
      name: "jsBridge_jzt", 
      methodList: jsMethodList.day, 
      controller: this.controller 
    }) 
} 
.onStateChange((refreshStatus: RefreshStatus) => { 
  console.info('Refresh onStatueChange state is ' + refreshStatus) 
}) 
.onRefreshing(() => { 
  setTimeout(() => { 
    this.isRefreshing = false 
  }, 2000) 
  console.log('onRefreshing test') 
}) 
.backgroundColor(0x89CFF0)
HarmonyOS
2024-08-09 11:50:01
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

Refresh组件无法触发Web组件的下拉刷新,推荐使用三方库实现pullToRefresh。

参考链接:https://gitee.com/openharmony-sig/PullToRefresh/tree/master#%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8

参考以下代码:

import web_webview from '@kit.ArkWeb'; 
import { PullToRefresh } from '@ohos/pulltorefresh' 
@Entry 
@Component 
struct Index { 
  controller: web_webview.WebviewController = new web_webview.WebviewController(); 
  @State dataArray: Array<string> = [] 
  private scroller: Scroller = new Scroller(); 
  @Builder 
  getContentView() { 
    Column() { 
      Web({ src: $rawfile('index.html'), controller: this.controller }) 
    } 
    .width('100%') 
    .height('100%') 
  } 
  build() { 
    Scroll(this.scroller) { 
      PullToRefresh({ 
        // 必传项,列表组件所绑定的数据,不是列表传个空数据 -- PullToRefresh组件使用@link绑定数据,该字段必须定义 
        data: $dataArray, 
        // 必传项,需绑定传入主体布局 
        scroller: this.scroller, 
        // 必传项,自定义主体布局 
        customList: () => { 
          // 一个用@Builder修饰过的UI方法,web组件定义在此@Builder -- 参数为BuilderParam,需要使用@builder修饰 
          this.getContentView(); 
        }, 
        // 可选项,下拉刷新回调 
        onRefresh: () => { 
          return new Promise<string>((resolve, reject) => { 
            setTimeout(() => { 
              resolve('') 
              // this.controller.loadUrl('https://www.baidu.com') 
            }, 1000); 
          }); 
        }, 
      }) 
        .width('100%') 
        .height('100%') 
    } 
    .width('100%') 
    .height('100%') 
  } 
}
分享
微博
QQ
微信
回复
2024-08-09 19:21:26
相关问题
HarmonyOS 列表刷新问题
163浏览 • 1回复 待解决
Refresh结合lottie实现下拉刷新动画
739浏览 • 1回复 待解决
HarmonyOS 页面跳转刷新问题
140浏览 • 1回复 待解决
HarmonyOS List item 刷新问题
234浏览 • 1回复 待解决
NativeWindowFlushBuffer接口刷新问题
1637浏览 • 1回复 待解决
如何使用Swiper组件实现下拉刷新
415浏览 • 1回复 待解决
HarmonyOS ArkWeb如何实现下拉刷新功能
94浏览 • 1回复 待解决
HarmonyOS Grid容器视图更新问题
147浏览 • 1回复 待解决
HarmonyOS Refresh组件嵌套滑动冲突问题
295浏览 • 1回复 待解决
有谁知道web组件如何下拉刷新
1736浏览 • 1回复 待解决