UltraSwipeRefreshConfig

data class UltraSwipeRefreshConfig(val headerScrollMode: NestedScrollMode = NestedScrollMode.Translate, val footerScrollMode: NestedScrollMode = NestedScrollMode.Translate, val refreshEnabled: Boolean = true, val loadMoreEnabled: Boolean = true, @FloatRange(from = 0.0, fromInclusive = false) val refreshTriggerRate: Float = 1.0f, @FloatRange(from = 0.0, fromInclusive = false) val loadMoreTriggerRate: Float = 1.0f, val headerSecondaryEnabled: Boolean = false, val footerSecondaryEnabled: Boolean = false, val headerSecondaryBehavior: SecondaryBehavior = SecondaryBehavior.Slide, val footerSecondaryBehavior: SecondaryBehavior = SecondaryBehavior.Slide, val headerSecondaryPreview: Boolean = false, val footerSecondaryPreview: Boolean = false, @FloatRange(from = 1.0, fromInclusive = false) val headerSecondaryTriggerRate: Float = 2.0f, @FloatRange(from = 1.0, fromInclusive = false) val footerSecondaryTriggerRate: Float = 2.0f, @FloatRange(from = 1.0) val headerMaxOffsetRate: Float = 3.0f, @FloatRange(from = 1.0) val footerMaxOffsetRate: Float = 3.0f, @FloatRange(from = 0.0, to = 2.0, fromInclusive = false) val dragMultiplier: Float = 0.5f, @IntRange(from = 0, to = 2000) val finishDelayMillis: Long = 500, val vibrationEnabled: Boolean = false, @IntRange(from = 1, to = 50) val vibrationMillis: Long = 25, val alwaysScrollable: Boolean = false, val headerIndicator: @Composable (UltraSwipeRefreshState) -> Unit = { SwipeRefreshHeader(it) }, val footerIndicator: @Composable (UltraSwipeRefreshState) -> Unit = { SwipeRefreshFooter(it) }, val contentContainer: @Composable (@Composable () -> Unit) -> Unit = { NoOverscrollEffect(it) })

UltraSwipeRefresh 的配置

Parameters

headerScrollMode

下拉刷新时 Header 的滑动模式;详细说明见 NestedScrollMode

footerScrollMode

上拉加载时 Footer 的滑动模式;详细说明见 NestedScrollMode

refreshEnabled

是否启用下拉刷新

loadMoreEnabled

是否启用上拉加载

refreshTriggerRate

触发下拉刷新的最小滑动比例,基于 headerIndicator 的高度;默认值:1

loadMoreTriggerRate

触发上拉加载的最小滑动比例,基于 footerIndicator 的高度;默认值:1

headerSecondaryEnabled

是否启用 Header 二级内容功能

footerSecondaryEnabled

是否启用 Footer 二级内容功能

headerSecondaryBehavior

Header 二级内容交互行为模式;详细说明见 SecondaryBehavior

footerSecondaryBehavior

Footer 二级内容交互行为模式;详细说明见 SecondaryBehavior

headerSecondaryPreview

UltraSwipeHeaderState.ReleaseToSecondary 状态下是否可提前预览 Header 二级内容

footerSecondaryPreview

UltraSwipeFooterState.ReleaseToSecondary 状态下是否可提前预览 Footer 二级内容

headerSecondaryTriggerRate

触发 Header 二级内容的最小滑动比例,基于 headerIndicator 的高度;默认值:2

footerSecondaryTriggerRate

触发 Footer 二级内容的最小滑动比例,基于 footerIndicator 的高度;默认值:2

headerMaxOffsetRate

下拉时 headerIndicator 的最大滑动偏移比例,基于其自身高度;默认值:3

footerMaxOffsetRate

上拉时 footerIndicator 的最大滑动偏移比例,基于其自身高度;默认值:3

dragMultiplier

滑动时的阻力系数,值越小阻力越大;默认值:0.5

finishDelayMillis

完成状态的停留时长(毫秒),便于展示提示内容;默认值:500

vibrationEnabled

是否启用振动反馈。启用后,滑动偏移量达到阈值时将触发振动;默认值:false

vibrationMillis

触发刷新或加载时的振动时长(毫秒);默认值:25

alwaysScrollable

是否始终允许滚动。设为 true 时,不受刷新/加载状态限制,始终可滚动;默认值:false

headerIndicator

下拉刷新时顶部显示的 Header 指示器

footerIndicator

上拉加载时底部显示的 Footer 指示器

contentContainer

内容的父容器,便于统一管理

Constructors

Link copied to clipboard
constructor(headerScrollMode: NestedScrollMode = NestedScrollMode.Translate, footerScrollMode: NestedScrollMode = NestedScrollMode.Translate, refreshEnabled: Boolean = true, loadMoreEnabled: Boolean = true, @FloatRange(from = 0.0, fromInclusive = false) refreshTriggerRate: Float = 1.0f, @FloatRange(from = 0.0, fromInclusive = false) loadMoreTriggerRate: Float = 1.0f, headerSecondaryEnabled: Boolean = false, footerSecondaryEnabled: Boolean = false, headerSecondaryBehavior: SecondaryBehavior = SecondaryBehavior.Slide, footerSecondaryBehavior: SecondaryBehavior = SecondaryBehavior.Slide, headerSecondaryPreview: Boolean = false, footerSecondaryPreview: Boolean = false, @FloatRange(from = 1.0, fromInclusive = false) headerSecondaryTriggerRate: Float = 2.0f, @FloatRange(from = 1.0, fromInclusive = false) footerSecondaryTriggerRate: Float = 2.0f, @FloatRange(from = 1.0) headerMaxOffsetRate: Float = 3.0f, @FloatRange(from = 1.0) footerMaxOffsetRate: Float = 3.0f, @FloatRange(from = 0.0, to = 2.0, fromInclusive = false) dragMultiplier: Float = 0.5f, @IntRange(from = 0, to = 2000) finishDelayMillis: Long = 500, vibrationEnabled: Boolean = false, @IntRange(from = 1, to = 50) vibrationMillis: Long = 25, alwaysScrollable: Boolean = false, headerIndicator: @Composable (UltraSwipeRefreshState) -> Unit = { SwipeRefreshHeader(it) }, footerIndicator: @Composable (UltraSwipeRefreshState) -> Unit = { SwipeRefreshFooter(it) }, contentContainer: @Composable (@Composable () -> Unit) -> Unit = { NoOverscrollEffect(it) })

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val dragMultiplier: Float = 0.5f
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard