android - 如何仅以恒定间隔停止搜索栏的进度

标签 android seekbar

我有一个范围为 0 - 100 的搜索栏。我想在搜索栏中创建离散点,以便进度仅在 0、10、20 等处停止。我不会在中间停止。 我尝试了以下代码,但无法成功。

 seekBar.setProgress(0);
    //seekBar.incrementProgressBy(10);
    seekBar.setMax(100);

 seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {                   progress = progress / 10;
            progress = progress * 10;
            seekBarValue.setText(String.valueOf(progress));
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {


        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            int seekBarIntValue;
        //    seekBar.incrementProgressBy(10);
            if((seekBar.getProgress()%10)!=0){
                if((seekBar.getProgress()%10)> 5)
                {
                     seekBarIntValue =(seekBar.getProgress()/10)+(seekBar.getProgress()%10);

                }else{
                     seekBarIntValue =(seekBar.getProgress()/10)-(seekBar.getProgress()%10);
                }

            }else{
                 seekBarIntValue = (seekBar.getProgress());
            }
            seekBar.setProgress(seekBarIntValue);

        }
    });

请帮我解决这个问题。

最佳答案

试试这个。

@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
{
  // round progress up or down to the nearest 10
  int roundedProgress = (int) (Math.rint((double) progress / 10) * 10);
  if (fromUser)
  {
    seekBar.setProgress(roundedProgress);
  }
}

关于android - 如何仅以恒定间隔停止搜索栏的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40926195/

相关文章:

java - 如何在 Android 上使用两个或多个搜索栏

android - Fresco 未使用来自网络的图像更新磁盘缓存

java - Android 斐波那契基准/深度递归

Android 12 - 模拟器 (Xamarin.Android)

java - Libgdx 音乐未正确处理

java - 设置onSeekBarChangeListener导致空对象异常

android - 在 android 主屏幕小部件中添加 Seekbar

android - 如何在android中从youtube链接的视频 View 中播放视频?

SeekBar 值的 Android TalkBack

android - 如何取消线程