Android seekbar如何在进度值范围内阻止拖动

Android seekbar如何在进度值范围内阻止拖动,android,seekbar,Android,Seekbar,为了说明这一点,我想防止在最大值的80%处拖动,同时保留20%的边距。拖动范围为(从20%到80%) 我只需要知道是否有可能使现有的方法变得清晰和简单 截图 如关于 不能定义最小值。它是0 如果要设置最大值,可以这样做 通过xml <SeekBar android:id="@+id/seekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" androi

为了说明这一点,我想防止在最大值的80%处拖动,同时保留20%的边距。拖动范围为(从20%到80%)

我只需要知道是否有可能使现有的方法变得清晰和简单

截图


如关于

不能定义最小值。它是0

如果要设置最大值,可以这样做

通过xml

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

您可以使用
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);
}
//我认为这两个变量应该在方法之外
整数极限=((20*200)/100);
int maxValue=seekBar.getMax();
if(参见kbar.getProgress()>=(maxValue-limit)){
seekBar.setProgress(最大值);

}else if(seekBar.getProgress()没有方法,为什么你不想使用
onProgressChanged
?这是一种在seekbar顶部添加视图并将其设置为clickable=true的方法,也可以使用linearlayout获得20%的Alberto Méndez你能给我举个例子吗,如果你知道它在飞行中…@zombie如果我没有错,那是行不通的,因为如果你拖动和移动Android将焦点保持在Seekbar中,这样就不会达到视图单击。只需要删除minValue根本不需要。行中:Seekbar.setProgress(minValue);必须是Seekbar.setProgress(limit);是的,您是对的,如果我没有错,则与
条件相同
// 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);
}