展示刷新和加载动画的自定义组件

介绍

一款OpenHarmony环境下可用的下拉刷新、上拉加载组件 支持设置内置动画的各种属性,支持设置自定义动画,支持lazyForEach的数据作为数据源。

1 组件主体

1.1 SmartRefreshModel 组件控制器类

@Observed
public class SmartRefreshModel {
    /**
     * 设置加载中是否可以滚动
     *
     * @param enableScrollContentWhenLoaded 加载中是否可以滚动 true表示可以 false表示不可以
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setEnableScrollContentWhenLoaded(enableScrollContentWhenLoaded: Bool): SmartRefreshModel

    /**
     * 设置刷新完成后暂停的时间
     *
     * @param refreshFinishStopDuration 暂停的时间
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshFinishStopDuration(refreshFinishStopDuration: Duration): SmartRefreshModel

    /**
     * 获取刷新完成后暂停的时间
     *
     * @return Duration 暂停的时间
     */
    public func getRefreshFinishStopDuration(): Duration

    /**
     * 设置头部反应触发率
     *
     * @param headerTriggerRate 反应触发率
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setHeaderTriggerRate(headerTriggerRate: Int32): SmartRefreshModel

    /**
     * 设置尾部反应触发率
     *
     * @param footerTriggerRate 反应触发率
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setFooterTriggerRate(footerTriggerRate: Int32): SmartRefreshModel

    /**
     * 设置尾部重点色
     *
     * @param classicsBottomAccentColor 尾部重点色
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setClassicsBottomAccentColor(classicsBottomAccentColor: Color): SmartRefreshModel

    /**
     * 获取尾部重点色
     *
     * @return Color 尾部重点色
     */
    public func getClassicsBottomAccentColor(): Color

    /**
     * 获取尾部经典拖动样式
     *
     * @param classicsBottomSpinnerStyle 样式对应的值
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setClassicsBottomSpinnerStyle(classicsBottomSpinnerStyle: Int64): SmartRefreshModel

    /**
     * 设置是否绘制尾部箭头
     *
     * @param classicsBottomDrawableArrow 是否绘制尾部箭头 true表示绘制 false表示不绘制
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setClassicsBottomDrawableArrow(classicsBottomDrawableArrow: Bool): SmartRefreshModel

    /**
     * 获取是否绘制尾部箭头
     *
     * @return Bool 是否绘制尾部箭头 true表示绘制 false表示不绘制
     */
    public func getClassicsBottomDrawableArrow(): Bool

    /**
     * 设置尾部绘制的尺寸
     *
     * @param classicsBottomDrawableSize 尾部绘制的尺寸
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setClassicsBottomDrawableSize(classicsBottomDrawableSize: Int32): SmartRefreshModel 

    /**
     * 设置尾部绘制箭头的尺寸
     *
     * @param classicsBottomDrawableArrowSize 尾部绘制箭头的尺寸
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setClassicsBottomDrawableArrowSize(classicsBottomDrawableArrowSize: Int32): SmartRefreshModel

    /**
     * 设置尾部绘制右侧内边距
     *
     * @param classicsBottomDrawableMarginRight 右侧内边距
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setClassicsBottomDrawableMarginRight(classicsBottomDrawableMarginRight: Int32): SmartRefreshModel

    /**
     * 设置尾部加载拖动中的提示信息
     *
     * @param classicsBottomRefreshPullDown 尾部加载拖动中的提示信息
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshFooterPullDown(classicsBottomRefreshPullDown: String): SmartRefreshModel

    /**
     * 设置尾部释放时提示信息
     *
     * @param classicsBottomRefreshRelease 尾部释放时提示信息
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshFooterRelease(classicsBottomRefreshRelease: String): SmartRefreshModel

    /**
     * 设置尾部加载中提示信息
     *
     * @param classicsBottomRefreshRefreshing 尾部加载中提示信息
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshFooterRefreshing(classicsBottomRefreshRefreshing: String): SmartRefreshModel

    /**
     * 设置尾部加载失败提示信息
     *
     * @param classicsBottomRefreshFailed 尾部加载失败提示信息
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setFefreshFooterFailed(classicsBottomRefreshFailed: String): SmartRefreshModel

    /**
     * 设置尾部标题信息的文字大小
     *
     * @param classicsBottomTextSizeTitle 尾部标题信息的文字大小
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setFooterTextSizeTitle(classicsBottomTextSizeTitle: Int32): SmartRefreshModel

    /**
     * 设置尾部时间信息的文字大小
     *
     * @param classicsBottomTextSizeTime 尾部时间信息的文字大小
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setFooterTextSizeTime(classicsBottomTextSizeTime: Int32): SmartRefreshModel

    /**
     * 设置内容不充满时是否可以加载更多
     *
     * @param enableLoadMoreWhenContentNotFull 内容不充满时是否可以加载更多 true表示可以 false表示不可以
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setEnableLoadMoreWhenContentNotFull(enableLoadMoreWhenContentNotFull: Bool): SmartRefreshModel

    /**
     * 获取内容不充满时是否可以加载更多
     *
     * @return Bool 内容不充满时是否可以加载更多 true表示可以 false表示不可以
     */
    public func getEnableLoadMoreWhenContentNotFull(): Bool

    /**
     * 设置刷新时是否可以修改内容
     *
     * @param disableContentWhenLoading 刷新时是否可以修改内容 true表示可以 false表示不可以
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setDisableContentWhenRefresh(disableContentWhenRefresh: Bool): SmartRefreshModel

    /**
     * 获取刷新时是否可以修改内容
     *
     * @return Bool 刷新时是否可以修改内容 true表示可以 false表示不可以
     */
    public func getDisableContentWhenRefresh(): Bool

    /**
     * 设置加载时是否可以修改内容
     *
     * @param disableContentWhenLoading 加载时是否可以修改内容 true表示可以 false表示不可以
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setDisableContentWhenLoading(disableContentWhenLoading: Bool): SmartRefreshModel

    /**
     * 获取加载时是否可以修改内容
     *
     * @return Bool 加载时是否可以修改内容 true表示可以 false表示不可以
     */
    public func getDisableContentWhenLoading(): Bool

    /**
     * 设置箭头绘制尺寸
     *
     * @param drawableArrowSize 箭头绘制尺寸
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setDrawableArrowSize(drawableArrowSize: Int32): SmartRefreshModel

    /**
     * 设置绘制尺寸
     *
     * @param drawableSize 绘制尺寸
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setDrawableSize(drawableSize: Int32): SmartRefreshModel

    /**
     * 设置是否绘制箭头标记
     *
     * @param drawableArrow 是否绘制箭头标记 true表示绘制 false表示不绘制
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setDrawableArrow(drawableArrow: Bool): SmartRefreshModel

    /**
     * 获取绘制箭头标记
     *
     * @return Bool 是否绘制箭头标记 true表示绘制 false表示不绘制
     */
    public func getDrawableArrow(): Bool

    /**
     * 设置是否绘制进度条
     *
     * @param drawableProgress 是否绘制进度条 true表示绘制 false表示不绘制
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setDrawableProgress(drawableProgress: Bool): SmartRefreshModel

    /**
     * 获取是否绘制进度条
     *
     * @return Bool 是否绘制进度条 true表示绘制 false表示不绘制
     */
    public func getDrawableProgress(): Bool

    /**
     * 设置绘制进度条的尺寸
     *
     * @param drawableProgressSize 进度条的尺寸
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setDrawableProgressSize(drawableProgressSize: Int64): SmartRefreshModel

    /**
     * 设置经典下拉样式
     *
     * @param classicsSpinnerStyle 下拉样式对应的值
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setClassicsSpinnerStyle(classicsSpinnerStyle: Int64): SmartRefreshModel

    /**
     * 设置右侧内边距
     *
     * @param drawableMarginRight 内边距
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setDrawableMarginRight(drawableMarginRight: Float64): SmartRefreshModel

    /**
     * 获取绘制的右侧内边距
     *
     * @return Float64 内边距
     */
    public func getDrawableMarginRight(): Float64

    /**
     * 设置重点色
     *
     * @param accentColor 重点色
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setAccentColor(accentColor: Color): SmartRefreshModel

    /**
     * 获取重点色
     *
     * @return Color 重点色
     */
    public func getAccentColor(): Color

    /**
     * 设置进度背景配色方案资源
     *
     * @param resource 颜色数组
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setProgressBackgroundColorSchemeResource(resource: Array<Color>): SmartRefreshModel

    /**
     * 设置文字颜色
     *
     * @param textColor 文字颜色
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setTextColor(textColor: UInt32): SmartRefreshModel

    /**
     * 设置标题提示信息顶部内边距
     *
     * @param textTimeMarginTop 标题提示信息顶部内边距
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setTextTimeMarginTop(textTimeMarginTop: Float64): SmartRefreshModel

    /**
     * 设置标题提示信息的文字大小
     *
     * @param textSizeTitle 标题提示信息的文字大小
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setTextSizeTitle(textSizeTitle: Length): SmartRefreshModel

    /**
     * 设置时间提示信息的文字大小
     *
     * @param textSizeTime 时间提示信息的文字大小
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setTextSizeTime(textSizeTime: Length): SmartRefreshModel

    /**
     * 设置下拉放手时提示信息
     *
     * @param refreshHeaderRelease 下拉放手时提示信息
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshHeaderRelease(refreshHeaderRelease: String): SmartRefreshModel

    /**
     * 设置下拉时提示信息
     *
     * @param refreshHeaderPullDown 下拉时提示信息
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshHeaderPullDown(refreshHeaderPullDown: String): SmartRefreshModel

    /**
     * 设置刷新中提示信息
     *
     * @param refreshHeaderRefreshing 刷新中提示信息
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshHeaderRefreshing(refreshHeaderRefreshing: String): SmartRefreshModel

    /**
     * 设置刷新结束提示信息
     *
     * @param refreshHeaderRefreshFinish 刷新结束提示信息
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshHeaderRefreshFinish(refreshHeaderRefreshFinish: String): SmartRefreshModel

    /**
     * 设置刷新失败错误信息
     *
     * @param refreshHeaderFailed 刷新失败错误信息
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshHeaderFailed(refreshHeaderFailed: String): SmartRefreshModel

    /**
     * 设置拖动速率
     *
     * @param dragRate 拖动速率
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setDragRate(dragRate: Float64): SmartRefreshModel

    /**
     * 设置头部最大拖动速率
     *
     * @param headerDragRate 拖动速率
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setHeaderMaxDragRate(headerDragRate: Float64): SmartRefreshModel

    /**
     * 设置尾部最大拖动速率
     *
     * @param footerDragRate 拖动速率
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setFooterMaxDragRate(footerDragRate: Float64): SmartRefreshModel

    /**
     * 设置回弹持续时间
     *
     * @param duration 持续时间
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setReboundDuration(duration: Duration): SmartRefreshModel

    /**
     * 设置是否可以下拉刷新
     *
     * @param enableRefresh 下拉刷新状态 true表示可以刷新 false表示不可以刷新
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setEnableRefresh(enableRefresh: Bool): SmartRefreshModel

    /**
     * 获取是否可以下拉刷新
     *
     * @return Bool 下拉刷新状态 true表示可以刷新 false表示不可以刷新
     */
    public func getEnableRefresh(): Bool

    /**
     * 设置是否可以加载更多
     *
     * @param enableLoadMore 加载更多状态 true表示可以加载 false表示不可以加载
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setEnableLoadMore(enableLoadMore: Bool): SmartRefreshModel

    /**
     * 获取是否可以加载更多
     *
     * @return Bool 加载更多状态 true表示可以加载 false表示不可以加载
     */
    public func getEnableLoadMore(): Bool

    /**
     * 设置头部的起始偏移量
     *
     * @param srlHeaderInsetStart 起始偏移量
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setSrlHeaderInsetStart(srlHeaderInsetStart: Int32): SmartRefreshModel

    /**
     * 获取头部的起始偏移量
     *
     * @return Int32 起始偏移量
     */
    public func getSrlHeaderInsetStart(): Int32

    /**
     * 设置尾部的起始偏移量
     *
     * @param srlFooterInsetStart 起始偏移量
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setSrlFooterInsetStart(srlFooterInsetStart: Int32): SmartRefreshModel

    /**
     * 获取尾部的起始偏移量
     *
     * @return Int32 起始偏移量
     */
    public func getSrlFooterInsetStart(): Int32

    /**
     * 是否刷新完成
     *
     * @return Bool 是否刷新完成 true表示完成 false表示未完成
     */
    public func isFinishRefresh(): Bool

    /**
     * 获取刷新状态
     *
     * @return Int64 对应刷新状态的值
     */
    public func getState(): Int64

    /**
     * 是否加载完成
     *
     * @return Int64 对应加载状态的值
     */
    public func isFinishLoadMore(): Int64

    /**
     * 获取下拉的y方向的移动距离
     *
     * @return Float64 移动距离
     */
    public func getDownYOffset(): Float64

    /**
     * 设置是否扩展
     *
     * @param expand 是否扩展 true表示是 false表示否
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setExpand(expand: Bool): SmartRefreshModel

    /**
     * 设置标题名称
     *
     * @param titleName 标题名称
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setTitleName(titleName: String): SmartRefreshModel

    /**
     * 设置头部层叠优先级zIndex
     *
     * @param zHeaderIndex 头部优先级值
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setZHeaderIndex(zHeaderIndex: Int32): SmartRefreshModel

    /**
     * 设置尾部层叠优先级zIndex
     *
     * @param zFooterIndex 尾部优先级值
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setZFooterHeight(zFooterIndex: Int32): SmartRefreshModel

    /**
     * 设置层叠优先级zIndex
     *
     * @param zMainIndex 优先级值
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setZMainIndex(zMainIndex: Int32): SmartRefreshModel

    /**
     * 设置尾部高度
     *
     * @param footerHeight 尾部高度
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setFooterHeight(footerHeight: Float64): SmartRefreshModel

    /**
     * 设置下拉中触摸点的X轴坐标
     *
     * @param currentMouseX x坐标值
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setCurrentMouseX(currentMouseX: Float64): SmartRefreshModel

    /**
     * 获取下拉中触摸点的X轴坐标
     *
     * @return Float64 当前触摸点的x坐标值
     */
    public func getCurrentMouseX(): Float64

    /**
     * 获取背景阴影颜色
     *
     * @return Color 背景阴影颜色
     */
    public func getBackgroundShadowColor(): Color

    /**
     * 设置背景阴影颜色
     *
     * @param backgroundShadowColor 背景阴影颜色
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setBackgroundShadowColor(backgroundShadowColor: Color): SmartRefreshModel

    /**
     * 获取时间信息显示状态
     *
     * @return Bool true表示显示 false表示不显示
     */
    public func getTimeShowState(): Bool

    /**
     * 设置是否显示时间信息
     *
     * @param timeShowState 是否显示 true表示显示 false表示不显示
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setTimeShowState(timeShowState: Bool): SmartRefreshModel

    /**
     * 获取刷新的位置
     *
     * @return Int64 刷新位置对应的值 0表示顶部下拉刷新 1表示底部上拉加载更多 2表示上下一起
     */
    public func getRefreshPosition(): Int64

    /**
     * 设置刷新的位置
     *
     * @param refreshPosition 刷新位置对应的值 0表示顶部下拉刷新 1表示底部上拉加载更多 2表示上下一起
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshPosition(refreshPosition: Int64): SmartRefreshModel

    /**
     * 获取是否固定内容
     *
     * @return Bool true表示是 false表示不是
     */
    public func getFixedContent(): Bool

    /**
     * 设置下拉样式是否固定
     *
     * @param fixedContent 是否是固定内容 true表示是 false表示不是
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setFixedContent(fixedContent: Bool): SmartRefreshModel

    /**
     * 获取下拉偏移量,标准为1
     *
     * @return Float64 下拉偏移量
     */
    public func getOffset(): Float64

    /**
     * 获取上次刷新时间
     *
     * @return DateTime 上次刷新时间
     */
    public func getLastRefreshTime(): DateTime

    /**
     * 设置主题颜色
     *
     * @param color 要设置的颜色
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setBackgroundColor(color: Color): SmartRefreshModel

    /**
     * 设置头部数据刷新时的回调
     *
     * @param callback 回调方法
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshHeaderDataCallback(callback: () -> Unit): SmartRefreshModel

    /**
     * 设置尾部数据刷新时的回调
     *
     * @param callback 回调方法
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshBottomDataCallback(callback: () -> Unit): SmartRefreshModel

    /**
     * 设置头部刷新时的回调(WaveSwipe、waterSwipe)
     *
     * @param callback 回调方法
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshHeaderCallback(callback: () -> Unit): SmartRefreshModel

    /**
     * 设置尾部刷新时的回调
     *
     * @param callback 回调方法
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshBottomCallback(callback: () -> Unit): SmartRefreshModel

    /**
     * 获取主题颜色
     *
     * @return Color 主题颜色
     */
    public func getBackgroundColor(): Color

    /**
     * 是否在进入界面时开启刷新
     *
     * @param initRefreshing 是否开启刷新 true表示开启 false表示关闭
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setNoInit(initRefreshing: Bool): SmartRefreshModel

    /**
     * 刷新重置时间
     *
     * @param toRefreshDuration 刷新重置时间
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setToRefreshDuration(toRefreshDuration: Duration): SmartRefreshModel

    /**
     * 获取刷新重置时间
     *
     * @return Duration 重置时间
     */
    public func getToRefreshDuration(): Duration

    /**
     * 设置刷新时长
     *
     * @param refreshDuration 刷新时长
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setRefreshDuration(refreshDuration: Duration): SmartRefreshModel

    /**
     * 获取刷新时长
     *
     * @return Duration 刷新时长
     */
    public func getRefreshDuration(): Duration

    /**
     * 设置尾部初始高度
     *
     * @param initFooterHeight 尾部初始高度
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setInitFooterHeight(initFooterHeight: Float64): SmartRefreshModel

    /**
     * 获取初始尾部高度
     *
     * @return Float64 初始尾部高度值
     */
    public func getInitFooterHeight(): Float64

    /**
     * 设置头部初始高度(WaveSwipe、WaterSwipe)
     *
     * @param initHeaderHeight 头部初始高度
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setInitHeaderHeight(initHeaderHeight: Float64): SmartRefreshModel

    /**
     * 获取初始头部高度
     *
     * @return Float64 初始头部高度值
     */
    public func getInitHeaderHeight(): Float64

    /**
     * 设置头部高度(WaveSwipe、WaterSwipe)
     *
     * @param headerHeight 头部高度
     *
     * @return SmartRefreshModel 当前实例对象
     */
    public func setHeaderHeight(headerHeight: Float64): SmartRefreshModel

    /**
     * 获取头部高度
     *
     * @return Float64 头部高度值
     */
    public func getHeaderHeight(): Float64
}

1.2 SmartRefresh 自定义组件

// 创建组件控制器对象
@State var refreshModel: SmartRefreshModel = SmartRefreshModel()

@Builder
func testHeader() { /** 头部组件 **/ }

@Builder
func testMain() { /** 列表主体 **/ }

@Builder
func testFooter() { /** 尾部组件 **/ }

/**
 * SmartRefresh 自定义组件
 *
 * @param model 组件控制器对象
 * @param header 头部组件 需使用@Builder修饰
 * @param mainContent 列表主体 需使用@Builder修饰
 * @param footer 尾部组件 需使用@Builder修饰
 */
SmartRefresh(model: refreshModel, header: testHeader, mainContent: testMain, footer: testFooter)

1.3 BezierRadar 组件控制器类

@Observed
public class SmartRefreshForBezierRadarModel {
    /**
     * 刷新开始时自动触发该方法,适合传入数据请求的方法
     *
     * @param callback 要触发的方法
     * @return SmartRefreshForBezierRadarModel 当前实例对象
     */
    public func setRefreshHeaderStartCallback(callback: () -> Unit): SmartRefreshForBezierRadarModel 
    
    /**
     * 结束头部刷新动画,一般在获取刷新数据完成之后调用
     */
    public func stopRefreshHeader(): Unit 
}

1.4 BezierRadar 自定义组件

// 创建组件控制器对象
@State var refreshModel: SmartRefreshForBezierRadarModel = SmartRefreshForBezierRadarModel()

@Builder
func testHeader() { /** 头部组件 **/ }

@Builder
func testMain() { /** 列表主体 **/ }

@Builder
func testFooter() { /** 尾部组件 **/ }

/**
 * SmartRefreshForBezierRadar 自定义组件
 *
 * @param model 组件控制器对象
 * @param header 头部组件 需使用@Builder修饰
 * @param mainContent 列表主体 需使用@Builder修饰
 * @param footer 尾部组件 需使用@Builder修饰
 */
SmartRefreshForBezierRadar(model: refreshModel, header: testHeader, mainContent: testMain, footer: testFooter)

1.5 SmartRefreshForGameModel 组件控制器类

@Observed
public class SmartRefreshForGameModel {
    /**
     * 设置游戏背景颜色
     *
     * @param Color 背景要修改的颜色
     * @return SmartRefreshForGameModel 当前实例对象
     */
    public func setBackgroundColor(color: Color): SmartRefreshForGameModel {
        this.backgroundColor = color
        return this
    }
    
    /**
     * 设置游戏背景颜色
     * 
     * @return Color 返回当前背景的颜色
     */
    public func getBackgroundColor(): Color
      
    /**
     * 自动刷新
     * 
     * @return Color 返回自动刷新的实例对象
     */
    public func autoRefresh()
}

1.6 SmartRefreshForGame自定义组件

// 创建组件控制器对象
@State var refreshModel: SmartRefreshForGameModel = SmartRefreshForGameModel()

@Builder
func testHeader() { /** 头部组件 **/ }

@Builder
func testMain() { /** 列表主体 **/ }

@Builder
func testFooter() { /** 尾部组件 **/ }

/**
 * SmartRefreshForGame 自定义组件
 *
 * @param model 组件控制器对象
 * @param header 头部组件 需使用@Builder修饰
 * @param mainContent 列表主体 需使用@Builder修饰
 * @param footer 尾部组件 需使用@Builder修饰
 */
SmartRefreshForBezierRadar(model: refreshModel, header: testHeader, mainContent: testMain, footer: testFooter)

1.7 SmartRefreshForStoreHouseModel自定义组件

@Observed
public class SmartRefreshForStoreHouseModel {
    /**
     * 设置显示类型
     *
     * @param StoreHouseDemandEnum 显示类型
     * @return SmartRefreshForStoreHouseModel 当前实例对象
     */
    public func setDemand(demand: StoreHouseDemandEnum): SmartRefreshForStoreHouseModel
    
    /**
     * 设置文本颜色
     *
     * @param color 字体颜色
     * @return SmartRefreshForStoreHouseModel 当前实例对象
     */
    public func setTextColor(color: Color): SmartRefreshForStoreHouseModel
    
    /**
     * 设置背景颜色
     *
     * @param color 背景颜色
     * @return SmartRefreshForStoreHouseModel 当前实例对象
     */
    public func setColor(color: Color): SmartRefreshForStoreHouseModel
}
public enum StoreHouseDemandEnum {
    | DEMAND_C // 显示中文信息
    | DEMAND_I // 显示图标
    | DEMAND_T // 显示商标
    | DEMAND_N // 显示数字
    | DEMAND_E // 显示英文信息
}

1.8 SmartRefreshForStoreHouse自定义组件

// 创建组件控制器对象
@State var model: SmartRefreshForStoreHouseModel = SmartRefreshForStoreHouseModel()

@Builder
func testHeader() { /** 头部组件 **/ }

@Builder
func testMain() { /** 列表主体 **/ }

@Builder
func testFooter() { /** 尾部组件 **/ }

/**
 * SmartRefreshForStoreHouse 自定义组件
 *
 * @param model 组件控制器对象
 * @param header 头部组件 需使用@Builder修饰
 * @param mainContent 列表主体 需使用@Builder修饰
 * @param footer 尾部组件 需使用@Builder修饰
 */
SmartRefreshForStoreHouse(smartModel: model, header: testHeader, mainContent: testMain, footer: testFooter)

1.9 SmartRefreshSecondModel自定义组件

@Observed
public class SmartRefreshSecondModel {
    /**
     * 设置背景阴影颜色
     *
     * @param backgroundShadowColor 阴影颜色
     * @return SmartRefreshSecondModel 当前实例对象
     */
    public func setBackgroundShadowColor(backgroundShadowColor: Color): SmartRefreshSecondModel
    
    /**
     * 设置下拉样式是否固定
     *
     * @param fixedContent 是否设置固定内容
     * @return SmartRefreshSecondModel 当前实例对象
     */
    public func setFixedContent(fixedContent: Bool): SmartRefreshSecondModel
    
    /**
     * 设置背景颜色
     *
     * @param color 背景颜色
     * @return SmartRefreshSecondModel 当前实例对象
     */
    public func setBackgroundColor(color: Color): SmartRefreshSecondModel
}

1.10 SmartRefreshSecond自定义组件

// 创建组件控制器对象
@State var smartModel: SmartRefreshSecondModel = SmartRefreshSecondModel()

@Builder
func testHeader() { /** 头部组件 **/ }

@Builder
func testMain() { /** 列表主体 **/ }

@Builder
func testFooter() { /** 尾部组件 **/ }

/**
 * SmartRefreshSecond 自定义组件
 *
 * @param model 组件控制器对象
 * @param header 头部组件 需使用@Builder修饰
 * @param mainContent 列表主体 需使用@Builder修饰
 * @param footer 尾部组件 需使用@Builder修饰
 */
SmartRefreshSecond(model: model, header: testHeader, mainContent: testMain, footer: testFooter)

1.11 SmartRefreshForDeliverySample自定义组件

// 创建组件控制器对象
@State var modelDelivery: SmartRefreshForDeliverySampleModel = SmartRefreshForDeliverySampleModel()

@Builder
func header() { /** 头部组件 **/ }

@Builder
func mainContent() { /** 列表主体 **/ }

@Builder
func footer() { /** 尾部组件 **/ }

/**
 * SmartRefreshForDeliverySample 自定义组件
 *
 * @param model 组件控制器对象
 * @param header 头部组件 需使用@Builder修饰
 * @param mainContent 列表主体 需使用@Builder修饰
 * @param footer 尾部组件 需使用@Builder修饰
 */
SmartRefreshForDeliverySample(modelDelivery: modelDelivery,
                header: header,
                mainContent: mainContent,
                footer: footer)

1.12 SmartRefreshForDeliverySampleModel组件控制器类

@Observed
public class SmartRefreshForDeliverySampleModel {
    /**
     * 获取下拉偏移量,标准为1
     *
     * 
     * @return Float64 下拉偏移量
     */
    public func getOffset(): Float64
    
    /**
     * 设置头部刷新时的回调
     *
     * @param callback 回调方法
     *
     * @return SmartRefreshForDeliverySampleModel 当前实例对象
     */
    public func setRefreshHeaderCallback(callback: () -> Unit): SmartRefreshForDeliverySampleModel
      
    /**
     * 设置背景阴影颜色
     *
     * @param backgroundShadowColor 阴影颜色
     * @return SmartRefreshForDeliverySampleModel 当前实例对象
     */
    public func setBackgroundShadowColor(backgroundShadowColor: Color): SmartRefreshForDeliverySampleModel
    
    /**
     * 设置Z主索引
     *
     * @param zMainIndex 索引
     * @return SmartRefreshForDeliverySampleModel 当前实例对象
     */
    public func setZMainIndex(zMainIndex: Int32): SmartRefreshForDeliverySampleModel
     
    /**
     * 设置背景阴影颜色
     *
     * @param backgroundShadowColor 阴影颜色
     * @return SmartRefreshForDeliverySampleModel 当前实例对象
     */
    public func setBackgroundColor(color: Color): SmartRefreshForDeliverySampleModel
}

1.13 SmartRefreshForDropBox自定义组件

// 创建组件控制器对象
@State var model: SmartRefreshForDropBoxModel = SmartRefreshForDropBoxModel()

@Builder
func header() { /** 头部组件 **/ }

@Builder
func mainContent() { /** 列表主体 **/ }

@Builder
func footer() { /** 尾部组件 **/ }

/**
 * SmartRefreshForDeliverySample 自定义组件
 *
 * @param model 组件控制器对象
 * @param header 头部组件 需使用@Builder修饰
 * @param mainContent 列表主体 需使用@Builder修饰
 * @param footer 尾部组件 需使用@Builder修饰
 */
 SmartRefreshForDropBox(
     modelDropBox: model,
     header: dropBoxHeader,
     mainContent: dropBoxMain,
     footer: dropBoxFooter
     )

1.14 SmartRefreshForDropBoxModel组件控制器类

@Observed
public class SmartRefreshForDropBoxModel {
    /**
     * 设置头部刷新时的回调
     *
     * @param callback 回调方法
     *
     * @return SmartRefreshForDropBoxModel 当前实例对象
     */
    public func setRefreshHeaderCallback(callback: () -> Unit): SmartRefreshForDropBoxModel
          
    /**
     * 设置底部刷新时的回调
     *
     * @param callback 回调方法
     *
     * @return SmartRefreshForDropBoxModel 当前实例对象
     */
    public func setRefreshBottomCallback(callback: () -> Unit): SmartRefreshForDropBoxModel
    
    /**
     * 设置主题颜色
     *
     * @param color 要设置的颜色
     *
     * @return SmartRefreshForDropBoxModel 当前实例对象
     */
    public func setBackgroundColor(color: Color): SmartRefreshForDropBoxModel

	/**
     * 设置刷新时长
     *
     * @param refreshDuration 刷新时长
     *
     * @return SmartRefreshForDropBoxModel 当前实例对象
     */
	public func setRefreshDuration(refreshDuration: Duration): SmartRefreshForDropBoxModel
}

1.15 SmartRefreshForFlyRefresh自定义组件

// 创建组件控制器对象
@State var model: SmartRefreshForFlyRefreshModel = SmartRefreshForFlyRefreshModel()

@Builder
func header() { /** 头部组件 **/ }

@Builder
func mainContent() { /** 列表主体 **/ }

@Builder
func footer() { /** 尾部组件 **/ }

/**
 * SmartRefreshForDeliverySample 自定义组件
 *
 * @param model 组件控制器对象
 * @param header 头部组件 需使用@Builder修饰
 * @param mainContent 列表主体 需使用@Builder修饰
 * @param footer 尾部组件 需使用@Builder修饰
 */
 SmartRefreshForFlyRefresh(
     modelFly: model,
     header: header,
     mainContent: mainContent,
     footer: footer
 )

1.16 SmartRefreshForFlyRefreshModel组件控制器类

@Observed
public class SmartRefreshForGameModel {
    /**
     * 设置主题颜色
     *
     * @param color 要设置的颜色
     *
     * @return SmartRefreshForFlyRefreshModel 当前实例对象
     */
    public func setBackgroundColor(color: Color): SmartRefreshForFlyRefreshModel

    /**
     * 设置刷新时的回调(WaveSwipe、waterSwipe)
     *
     * @param callback 回调方法
     *
     * @return SmartRefreshForFlyRefreshModel 当前实例对象
     */
    public func setRefreshCallback(callback: () -> Unit): SmartRefreshForFlyRefreshModel
      
    /**
     * 设置是否初始化
     *
     * @param initRefreshing 初始化设置
     * @return SmartRefreshForFlyRefreshModel 当前实例对象
     */
    public func setNoInit(initRefreshing: Bool): SmartRefreshForFlyRefreshModel
}

1.17 SmartRefreshForTaurus自定义组件

// 创建组件控制器对象
@State var model: SmartRefreshForTaurusModel = SmartRefreshForTaurusModel()

@Builder
func header() { /** 头部组件 **/ }

@Builder
func mainContent() { /** 列表主体 **/ }

@Builder
func footer() { /** 尾部组件 **/ }

/**
 * SmartRefreshForDeliverySample 自定义组件
 *
 * @param model 组件控制器对象
 * @param header 头部组件 需使用@Builder修饰
 * @param mainContent 列表主体 需使用@Builder修饰
 * @param footer 尾部组件 需使用@Builder修饰
 */
 SmartRefreshForTaurus(
     model: model,
     header: testHeader,
     mainContent: testMain,
     footer: testFooter
 )

1.18 SmartRefreshForTaurusModel组件控制器类

@Observed
public class SmartRefreshForGameModel {
    /**
     * 设置是否扩展
     *
     * @param expand 是否扩展
     * 
     * @return SmartRefreshForTaurusModel 当前实例对象
     */
    public func setExpand(expand: Bool) : SmartRefreshForTaurusModel
    
    /**
     * 设置标题名称
     *
     * @param titleName 标题名称
     */
    public func setTitleName(titleName: String)
      
    /**
     * 设置底部高度
     *
     * @param zFooterIndex 底部高度
     * @return SmartRefreshForTaurusModel 当前实例对象
     */
     public func setZFooterHeight(zFooterIndex: Int32): SmartRefreshForTaurusModel 
     
     /**
     * 获取下拉偏移量,标准为1
     *
     * 
     * @return Float64 下拉偏移量
     */
     public func getOffset(): Float64{
     
     /**
     * 设置背景颜色
     *
     * @param Color 背景要修改的颜色
     * @return SmartRefreshForTaurusModel 当前实例对象
     */
     public func setBackgroundColor(color: Color): SmartRefreshForTaurusModel 
     
     /**
     * 设置底部刷新时的回调
     *
     * @param callback 回调方法
     *
     * @return SmartRefreshForTaurusModel 当前实例对象
     */
    public func setRefreshBottomCallback(callback: () -> Unit): SmartRefreshForTaurusModel
    
     /**
     * 设置底部初始化高度
     *
     * @param initFooterHeight 初始化底部高度
     *
     * @return SmartRefreshForTaurusModel 当前实例对象
     */
    public func setInitFooterHeight(initFooterHeight: Float64): SmartRefreshForTaurusModel
}

2 头部下拉刷新组件

2.1 Classics样式

// 创建组件控制器对象
@State var refreshModel: SmartRefreshModel = SmartRefreshModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func testHeader() {
    /**
     * Classics样式头部组件
     *
     * @param model 组件控制器对象
     * @param pullRefreshImage 要显示的图片资源
     */
    Classics(model: refreshModel, pullRefreshImage: @r(app.media.classicsRefreshing))
}

2.2 Material样式

// 创建组件控制器对象
@State var refreshModel: SmartRefreshModel = SmartRefreshModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func testHeader() {
    /**
     * Material样式头部组件
     *
     * @param model 组件控制器对象
     */
    Material(model: refreshModel)
}

2.3 BezierRadar样式

// 创建组件控制器对象
@State var refreshModel: SmartRefreshForBezierRadarModel = SmartRefreshForBezierRadarModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func testHeader() {
    /**
     * BezierRadar样式头部组件
     *
     * @param smartModel 组件控制器对象
     */
    BezierRadar(smartModel: refreshModel)
}

2.4 WaterSwipe样式

// 创建组件控制器对象
@State var refreshModel: SmartRefreshModel = SmartRefreshModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func testHeader() {
    /**
     * WaterSwipe样式头部组件
     *
     * @param smartModel 组件控制器对象
     */
    WaterSwipe(model: refreshModel)
}

2.5 WaveSwipe样式

// 创建组件控制器对象
@State var refreshModel: SmartRefreshModel = SmartRefreshModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func testHeader() {
    /**
     * WaveSwipe样式头部组件
     *
     * @param smartModel 组件控制器对象
     */
    WaveSwipe(model: refreshModel)
}

2.6 BattleCity样式

// 创建组件控制器对象
@State var refreshModel: SmartRefreshForGameModel = SmartRefreshForGameModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func testHeader() {
	BattleCity(model: model, pullRefreshImage1: @r(app.media.plan_diren_b), pullRefreshImage2: @r(app.media.zidan_b), pullRefreshImage3: @r(app.media.plan_me_b))
}

2.7 HitBlock样式

// 创建组件控制器对象
@State var modelGame: SmartRefreshForGameModel = SmartRefreshForGameModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func testHeader() {
	HitBlock(model: modelGame)
}

2.8 BezierCircle样式

// 创建组件控制器对象
@State var model: SmartRefreshSecondModel = SmartRefreshSecondModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func testHeader() {
	BezierCircle(model: model)
}

2.9 StoreHouse样式

// 创建组件控制器对象
@State var model: SmartRefreshForStoreHouseModel = SmartRefreshForStoreHouseModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func testHeader() {
	StoreHouse(smartModel: model)
}

2.10 Delivery样式

// 创建组件控制器对象
@State var modelDelivery: SmartRefreshForDeliverySampleModel = SmartRefreshForDeliverySampleModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func deliveryHeader() {
Delivery(model: modelDelivery)
}

2.11 DropBox样式

// 创建组件控制器对象
@State var model: SmartRefreshForDropBoxModel = SmartRefreshForDropBoxModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func dropBoxHeader() {
	DropBox(model: model, boxColor:boxColor)
}
    

2.12 FlyRefreshStylePage样式

// 创建组件控制器对象
@State var model: SmartRefreshForFlyRefreshModel = SmartRefreshForFlyRefreshModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
    @Builder
    func header() {
        FlyRefreshHeader(model: model, pullRefreshImage1: pullRefreshImage1, pullRefreshImage2: pullRefreshImage2,
            pullRefreshImage3: pullRefreshImage3, pullRefreshImage4: pullRefreshImage4,
            pullRefreshImage5: pullRefreshImage5, pullRefreshImage6: pullRefreshImage6,
            pullRefreshImage7: pullRefreshImage7, pullRefreshImage8: pullRefreshImage8)
    }

2.13 Phoenix样式

// 创建组件控制器对象
@State var model: SmartRefreshForDropBoxModel = SmartRefreshForDropBoxModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
@Builder
func dropBoxHeader() {
	DropBox(model: model, boxColor:boxColor)
}

2.14 Taurus样式

// 创建组件控制器对象
@State var model: SmartRefreshForTaurusModel = SmartRefreshForTaurusModel()

// 创建头部组件 需使用@Builder修饰 方法名称可以自定义
    @Builder
    func testHeader() {
        Taurus(model: model)
    }

3 底部上拉加载组件

3.1 Classics样式

// 创建组件控制器对象
@State var model: SmartRefreshModel = SmartRefreshModel()

// 创建底部组件 需使用@Builder修饰 方法名称可以自定义
    @Builder
    func testFooter() {
        Column() {
            ClassicsBottom(model: model)
        }.width(100.percent).padding(20.lpx)
    }

3.2 BezierCircle样式

// 创建组件控制器对象
@State var model: SmartRefreshSecondModel = SmartRefreshSecondModel()

// 创建底部组件 需使用@Builder修饰 方法名称可以自定义
    @Builder
    func testFooter() {
        Column() {
            BezierCircleBottom(model: model)
        }.width(100.percent).padding(20.lpx)
    }

3.3 DropBox样式

// 创建组件控制器对象
@State var model: SmartRefreshForDropBoxModel = SmartRefreshForDropBoxModel()

// 创建底部组件 需使用@Builder修饰 方法名称可以自定义
    @Builder
    func dropBoxFooter() {
        Column() {
            DropBoxBottomRefresh(model: model, boxColor: boxColor)
        }.width(100.percent).padding(20.lpx)
    }

3.4 Material样式

// 创建组件控制器对象
@State var model: SmartRefreshModel = SmartRefreshModel()

// 创建底部组件 需使用@Builder修饰 方法名称可以自定义
    @Builder
    func testFooter() {
        Column() {
            MaterialBottom(model: model)
        }.width(100.percent).padding(20.lpx)
    }

3.5 Phoenix样式

// 创建组件控制器对象
@State var model: SmartRefreshForTaurusModel = SmartRefreshForTaurusModel()

// 创建底部组件 需使用@Builder修饰 方法名称可以自定义
    @Builder
    func testFooter() {
        Column() {
            PhoenixBottomRefresh(model: model, pullRefreshImage1: @r(app.media.cloud), pullRefreshImage2: @r(app.media.sun),
            pullRefreshImage3: @r(app.media.city))
        }
        .width(100.percent)
    }

3.6 Taurus样式

// 创建组件控制器对象
@State var model: SmartRefreshForTaurusModel = SmartRefreshForTaurusModel()

// 创建底部组件 需使用@Builder修饰 方法名称可以自定义
    @Builder
    func testFooter() {
        Column() {
            TaurusBottomRefresh(model: model)
        }
        .width(100.percent)
    }