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

求助:如何为Luke Deighton的WheelView设置1-12小时列表

搞定WheelView的1-12小时列表设置

嗨,我来帮你搞定Luke Deighton开发的WheelView小时列表配置问题~其实步骤很简单,咱们结合你的Fragment代码来一步步完善:

1. 初始化1到12的小时数据列表

在你的SetTimeFragment里,找个合适的时机(比如onViewCreated方法中)创建小时列表:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    // 生成1到12的小时字符串列表
    hours = List(12) { index -> (index + 1).toString() }
    // 后续的WheelView配置也放在这里
}

2. 配置WheelView并绑定数据

接下来找到布局中的WheelView实例,把刚才创建的小时列表绑定进去,同时设置选择监听:

// 假设布局里WheelView的id是wheel_hours
val hourWheelView = view.findViewById<WheelView>(R.id.wheel_hours)
hourWheelView?.apply {
    // 设置小时数据
    setItems(hours)
    // 绑定你已经实现的选择监听
    setOnWheelItemSelectListener(this@SetTimeFragment)
    // 可选:设置默认选中的位置,比如默认选中第0项(对应1点)
    setCurrentPosition(0)
    // 还可以根据需求调整UI参数,比如显示的条目数量
    setWheelItemCount(5)
}

3. 完善选择监听的回调逻辑

你已经实现了WheelView.OnWheelItemSelectListener接口,记得补全回调方法的具体逻辑:

override fun onWheelItemSelect(position: Int, item: Any?) {
    val selectedHour = item as? String
    selectedHour?.let {
        // 这里处理选中小时后的业务逻辑,比如保存选中值、更新UI等
        Log.d("SetTimeFragment", "当前选中的小时:$it")
    }
}

4. 布局中确保正确引用WheelView

别忘了在你的Fragment布局XML里添加WheelView组件,示例如下:

<com.lukedeighton.wheelview.WheelView
    android:id="@+id/wheel_hours"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:wheelOffsetY="10dp" <!-- 调整上下偏移量 -->
    app:wheelItemTextSize="18sp" <!-- 设置文字大小 -->
    app:wheelSelectedItemTextColor="@color/primary" /> <!-- 选中项的文字颜色 -->

这样就能顺利实现1到12的小时列表了,有其他细节问题随时调整就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:56:06