我试图阻止某个seekBar到达动态点后的移动(通过减去setMax()值和其他seekBar.getProgress()来计算)。 我尝试使用onTouchEvent(),但无法停止栏的移动并手动设置seekBar.setProgress()但它只跳到那一点并继续用手指移动。
{{1}}
请帮助
答案 0 :(得分:4)
你有
if (progress >= Integer.parseInt(et.getText().toString()) - sb2.getProgress() - sb3.getProgress())
sb1.setProgress(progress);
在sb1
更改侦听器中。但这并不合理,因为progress
已经是sb1
的进展。我想你应该改变这个:
sb1.setProgress(progress);
要:
sb1.setProgress(Integer.parseInt(et.getText().toString()) - sb2.getProgress() - sb3.getProgress());
我获得的进展值来自if
条件。基本上,当进度大于该值时,您只需将其设置为该值。所以这样,就不能拖过那一点了。
同样为你的其他听众做同样的事情。
答案 1 :(得分:0)
达到所需进度后禁用搜索栏对象:
sb1.setEnable (false)