如何使用搜索栏设置时间范围

How to set time range using seekbar

我偶然发现了 this library by Anothem。基本上它提供了一个类似于默认 Android 的 SeekBar,但有两个拇指控件允许 selected 范围,以及一些其他附加功能。

目前 seekbar 可以 select 范围在 numbers/digits 之间,但不能用于 time 范围 selection in [=15] =] 系统如 12am-3pm.

我正在尝试实现上述目标,但没有成功。

在浏览完 Whosebug 之后,我再次偶然发现了 similar issue,但似乎无法为我的案例重用或实施。

同样 github repo 承诺会解决问题,但在 运行 和 class 之后,我根本看不到变化。

任何建议将不胜感激!

Here is the class to modify.

我是如何使用它的:

RangeSeekBar rangeSeekBar = (RangeSeekBar) findViewById(R.id.seekbar);
        rangeSeekBar.setRangeValues(15, 90);
        rangeSeekBar.setSelectedMinValue(20);
        rangeSeekBar.setSelectedMaxValue(88);

为什么将范围值设置为 15 到 90?如果您试图描绘时间,则应将范围值设置为:

rangeSeekBar.setRangeValues(0,24 * SMALLEST_HOUR_FRACTION);

其中 SMALLEST_HOUR_FRACTION 是您可以 select 的最小时间块(2 到 select 每半小时,4 每刻钟( 15 分钟), 60 每分钟).

然后,要确定用户 selected 的时间,请使用:

int minHour = rangeSeekBar.getSelectedMinValue() / SMALLEST_HOUR_FRACTION;
int minMinute = SMALLEST_HOUR_FRACTION * (rangeSeekBar.getSelectedMinValue() % SMALLEST_HOUR_FRACTION);
int maxHour = rangeSeekBar.getSelectedMaxValue() / SMALLEST_HOUR_FRACTION;
int maxMinute = SMALLEST_HOUR_FRACTION * (rangeSeekBar.getSelectedMaxValue() % SMALLEST_HOUR_FRACTION);