TimetableLayout-时间表格控件.zip
UsageDependencyimplementation 'io.moyuru:timetablelayout:1.0.0-alpha01'LayoutManagerrecyclerView.layoutManager = TimetableLayoutManager(columnWidth, heightPerMin) { position -> val period = periods[position] TimetableLayoutManager.PeriodInfo(period.startAt, period.endAt, period.stageNumber) }ItemDecorationrecyclerView.addItemDecoration(ProgramTimeLabelDecoration(context, periods, heightPerMin)) recyclerView.addItemDecoration(StageNameDecoration(context, periods, columnCount))class ProgramTimeLabelDecoration(private val periods: List<Period>, ...) : TimeLabelDecoration(...) { private val formatter = DateTimeFormatter.ofPattern("HH:mm") override fun canDecorate(position: Int): Boolean = periods.getOrNull(position) is Program override fun getStartUnixMillis(position: Int): Long = periods.getOrNull(position)?.startAt ?: 0 override fun formatUnixMillis(unixMillis: Long): String = LocalDateTime.ofEpochSecond(unixMillis / 1000, 0, ZoneOffset.UTC).format(formatter) }class StageNameDecoration(private val periods: List<Period>, ...) : ColumnNameDecoration(...) { override fun getColumnNumber(position: Int): Int { return periods.getOrNull(position)?.stageNumber ?: 0 } override fun getColumnName(columnNumber: Int): String { return when (columnNumber) { 0 -> "Melodic Hardcore" 1 -> "Metalcore" 2 -> "Hardcore" 3 -> "Deathcore" else -> "Djent" } } }SampleFeatures Vertical Scroll Horizontal Scroll Horizontal Loop Non Horizontal Loop Column Name Decoration Time Decoration Current Time Decoration Multi Column Scrollbar Pinch To Zoom
- 1
- 粉丝: 376
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助