【小程序】支付宝小程序自定义下拉刷新组件

本文介绍如何在支付宝小程序中创建一个自定义下拉刷新组件,以解决原生框架下拉刷新与固定头部不兼容的问题。通过组件化方式,实现了既能支持固定头部,又可容纳底部内容的下拉刷新效果。
摘要由CSDN通过智能技术生成

🌾 用支付宝原生框架写一个下拉刷新组件。

背景

支付宝提供的my.startPullDownRefreshAPI是下拉整个页面的,当有固定头部的时候,就达不到要求。而MAS提供的adc-flat-list组件可以支持固定头部,但是不能支持有底部,如果将底部放在组件外,就会出现两个滚动条。
后来参考了些博客,整理了这个满足业务需求的下拉刷新组件,参考文章最后贴出。

实现效果

在这里插入图片描述

子组件

组件命名为pull-refresh

<view class="pull-refresh-cont">
  <!-- 插槽 - 固定的头部 -->
  <slot name="header" />
  <scroll-view class="scroll-view" scroll-y='{
    {!isindrag}}' onScroll='scorll'>
    <view class='column' onTouchStart='start' onTouchEnd='end' onTouchMove='move'>
      <view a:if="{
    {refreshBatch}}">
        <view style='height:{
       {
       hei}}px;' class='refresh'>{
  {desc}}</view>
      </view>
      <!-- 插槽 - 列表内容 -->
      <slot />
      <!-- 插槽 - 跟在列表后面的底部内容 -->
      <slot name="footer" />
    </view>
  </scroll-view>
</view>

.pull-refresh-cont {
   
  display: flex;
  flex-direction: column;
  box-sizing: content-box;
  // 兼容底部安全距离
  height: calc(100vh - constant(safe-area-inset-bottom)); /* 兼容 iOS < 11.2 */
  height: calc(100vh - env(safe-area-inset-bottom)); /* 兼容 iOS >= 11.2 */
  overflow: hidden;
  background-color: #fff;
  
  .scroll-view {
   
    flex: 1;
    
    .column {
   
      height: 100%;
      
      .refresh {
   
        background-color: #f5f5f5;
        text-align: center;
        padding: 10rpx 0;
      }
    }
  }
}

import {
    createComponent } from '@whale.io/mini/es/miniu';

interface IProps {
   
  onRefresh: () => Promise<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值