展示刷新和加载动画的自定义组件
介绍
一款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)
}