Android搜索栏如何阻止在进度值范围内拖动

时间:2016-11-24 13:01:24

标签: android seekbar

要说清楚,我想防止拖动最大值的80%,左边距20%。拖动范围将是(从20%到80%)。

我只需要知道是否可以从现有方法中轻松实现。

截图

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用onProgressChanged进行非常基本的计算。如果最小值为0且最大值为200,我们希望限制第一个和最后一个20%。在onProgressChanged方法中,您只需:

// I think this two variables should be out of the method
int limit = ((20 * 200) / 100);
int maxValue = seekBar.getMax();
if(seekBar.getProgress() >= (maxValue - limit)){
    seekBar.setProgress(maxValue);
}else if(seekBar.getProgress() <= limit){
    seekBar.setProgress(limit);
}

这已经在飞行中完成,它没有经过测试,可能有问题,但这就是想法

答案 1 :(得分:0)

如答案here中提到的那样

  

您无法定义最小值。它是0。

如果你想设定最大值,你可以这样做

xml

<SeekBar
    android:id="@+id/seekBar1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="your_max_value"/>

使用java

seekBar = (SeekBar)findViewById(R.id.seekbar_id);
seekBar.setMax(your_max_value);