如何阻止 seekBar 移动超过动态点
How to stop the movement of seekBar past a dynamic point
我试图在某个 seekBar 到达动态点后停止其移动(通过减去 setMax() 值和其他 seekBar.getProgress() 计算得出)。
我尝试使用 onTouchEvent() 但无法停止条的移动并手动设置 seekBar.setProgress() 但它只会跳到那个点并继续用手指移动。
sb1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
sb1.setMax(Integer.parseInt(et.getText().toString()));
if (progress >= Integer.parseInt(et.getText().toString()) - sb2.getProgress() - sb3.getProgress())
sb1.setProgress(progress);
tv1.setText(String.valueOf(progress));
}
});
sb2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
sb2.setMax(Integer.parseInt(et.getText().toString()));
if (progress >= Integer.parseInt(et.getText().toString()) - sb1.getProgress() - sb3.getProgress())
sb2.setProgress(progress);
tv2.setText(String.valueOf(progress));
}
});
请帮忙
达到所需进度后禁用搜索栏对象:
sb1.setEnable (false)
你有
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
条件中获得的进步价值。基本上当进度大于该值时,您只需将其设置为该值即可。所以这样一来,它就不能被拖过那个点了。
也为您的其他听众做同样的事情。
我试图在某个 seekBar 到达动态点后停止其移动(通过减去 setMax() 值和其他 seekBar.getProgress() 计算得出)。 我尝试使用 onTouchEvent() 但无法停止条的移动并手动设置 seekBar.setProgress() 但它只会跳到那个点并继续用手指移动。
sb1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
sb1.setMax(Integer.parseInt(et.getText().toString()));
if (progress >= Integer.parseInt(et.getText().toString()) - sb2.getProgress() - sb3.getProgress())
sb1.setProgress(progress);
tv1.setText(String.valueOf(progress));
}
});
sb2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
sb2.setMax(Integer.parseInt(et.getText().toString()));
if (progress >= Integer.parseInt(et.getText().toString()) - sb1.getProgress() - sb3.getProgress())
sb2.setProgress(progress);
tv2.setText(String.valueOf(progress));
}
});
请帮忙
达到所需进度后禁用搜索栏对象:
sb1.setEnable (false)
你有
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
条件中获得的进步价值。基本上当进度大于该值时,您只需将其设置为该值即可。所以这样一来,它就不能被拖过那个点了。
也为您的其他听众做同样的事情。