0

我需要帮助来创建一个带有多个拇指的搜索栏。
目前,我有一个 1-100 公里的搜索栏。我能够以固定间隔移动拇指 1,2,3,4,5,6,7,8,9 等。
我需要帮助以灵活间隔等移动拇指 1,2,5,10,20 ,50,100。

目前,我有以下内容:

    seekLocation.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            txtDistanceIncrease.setText(UnitConverter.getSeekbarDistanceByType(prefUtils, progress));

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });
4

1 回答 1

0

当用户移动进度条时,您可以尝试将搜索条捕捉到最近的间隔。(例如 10 到 15 捕捉到 10;15 到 30 捕捉到 20,等等......)有点像下面。

int[] x_value = {1,2,5,10,20,50,100,..};
int maxValue = maxOf(x_value);
int minValue = minOf(x_value); 

seekbar.setMax(maxValue -minValue);

然后在 seekbar onProgressChanged 监听器

onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){

   if(fromUser){
    int x = progress + minValue;
    //snap progress to the nearest x_value
    int nearestX = getNearestXValue(x, x_value);
    seekbar.setProgress(nearestX);

    updateChartline(nearestX);
   }

}
于 2017-12-02T14:26:48.183 回答