如何使用搜索栏设置时间范围
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 之后,我根本看不到变化。
任何建议将不胜感激!
我是如何使用它的:
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);
我偶然发现了 this library by Anothem。基本上它提供了一个类似于默认 Android 的 SeekBar
,但有两个拇指控件允许 selected 范围,以及一些其他附加功能。
目前 seekbar
可以 select 范围在 numbers/digits
之间,但不能用于 time
范围 selection in [=15] =] 系统如 12am-3pm
.
我正在尝试实现上述目标,但没有成功。
在浏览完 Whosebug 之后,我再次偶然发现了 similar issue,但似乎无法为我的案例重用或实施。
同样 github repo 承诺会解决问题,但在 运行 和 class 之后,我根本看不到变化。
任何建议将不胜感激!
我是如何使用它的:
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);