You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Thellmund WeekView Library单日视图下获取horizontalScrollListener咨询

针对Thellmund WeekView单日视图日期切换监听的解决方案

你在使用com.github.thellmund.Android-Week-View:core:5.2.4的单日视图模式时,想要捕获日期切换事件来调用API,以下是几个经过验证的可行方案:

方案1:通过OnScrollListener监听滚动停止后的日期变化

单日视图下横向滚动直接对应日期切换,你可以给WeekView设置滚动监听,在滚动停止时对比当前显示日期与上次记录的日期,判断是否触发API调用:

weekView.setOnScrollListener(object : WeekView.OnScrollListener {
    private var lastActiveDate: Calendar? = null

    override fun onScrollStateChanged(scrollState: Int) {
        if (scrollState == RecyclerView.SCROLL_STATE_IDLE) {
            val currentDate = weekView.currentVisibleDateRange.first
            if (lastActiveDate == null || currentDate.timeInMillis != lastActiveDate?.timeInMillis) {
                // 日期已切换,执行API请求
                loadEventsForDate(currentDate)
                lastActiveDate = currentDate
            }
        }
    }

    override fun onScrolled(dx: Int, dy: Int) {
        // 滚动过程中无需处理,聚焦停止状态即可
    }
})

currentVisibleDateRange在单日模式下仅包含当前显示的单个日期,直接取第一个元素即可。

方案2:重写适配器的onDisplayedRangeChanged方法

你之前尝试的onRangeChange是用于预加载数据的范围变化,而onDisplayedRangeChanged才是实际显示日期范围变更时触发的回调,更适合你的场景:

class YourEventAdapter : WeekView.EventAdapter<YourEventModel>() {
    override fun onDisplayedRangeChanged(startDate: Calendar, endDate: Calendar) {
        super.onDisplayedRangeChanged(startDate, endDate)
        // 单日视图下startDate与endDate为同一天
        loadEventsForDate(startDate)
    }
}

确保你的自定义适配器继承自WeekView.EventAdapter,这个回调会在每次滚动切换日期后自动触发。

方案3:覆盖手动日期切换场景

如果你的界面有左右箭头这类手动切换日期的控件,在调用goToDate后直接触发API请求,和滚动监听形成互补:

// 示例:点击左箭头切换到前一天
btnPreviousDay.setOnClickListener {
    val targetDate = Calendar.getInstance().apply {
        time = weekView.currentVisibleDateRange.first.time
        add(Calendar.DAY_OF_MONTH, -1)
    }
    weekView.goToDate(targetDate)
    loadEventsForDate(targetDate)
}

额外提示

  • 给loadEventsForDate添加防抖逻辑(比如用Handler延迟执行或使用防抖库),避免快速滚动时重复发起API请求
  • 测试时覆盖滚动切换、手动按钮切换等所有可能的日期变更场景,确保回调稳定触发

内容的提问来源于stack exchange,提问作者Ismael Toro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 10:33:27