Android seekbar如何在短时间内阻止/禁用它
如果值为true,我想阻止seekbar的拖动。这可能吗?我用一个搜索杆作为开关。如果我的seekbar值为0,我按下按钮,动作A开始。如果我的seekbar值为1,并且我按下按钮,则启动操作BAndroid seekbar如何在短时间内阻止/禁用它,android,user-interface,seekbar,Android,User Interface,Seekbar,如果值为true,我想阻止seekbar的拖动。这可能吗?我用一个搜索杆作为开关。如果我的seekbar值为0,我按下按钮,动作A开始。如果我的seekbar值为1,并且我按下按钮,则启动操作B 我想防止,如果操作A或B正在运行,seekbar会被拖到另一个位置我如何才能做到这一点?您是否尝试过禁用视图 参考: 更新: 理想情况下,您不应该这样做,因为这会让用户感到困惑。我的建议是重新考虑您的方法。您应该设置自己的onTouchListener,然后返回true seekBar.setOnT
我想防止,如果操作A或B正在运行,seekbar会被拖到另一个位置
我如何才能做到这一点?您是否尝试过禁用视图 参考: 更新:
理想情况下,您不应该这样做,因为这会让用户感到困惑。我的建议是重新考虑您的方法。您应该设置自己的onTouchListener,然后返回true
seekBar.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return true;
}
});
设置一个类级别变量
private boolean blockSeekBar = false;
之后,根据您的要求设置blockSeekBar
变量并在应用程序中使用
seekBar.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return blockSeekbar;
}
});
还有一个选择,但视图显示不好,所以这就是为什么上面的代码可以完美工作的原因
int lastProgress=0;
private SeekBar.OnSeekBarChangeListener mOnSeekbarChangeListener = new
SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekbar, int progress, boolean fromUser) {
if (fromUser) {
if (true) {
seekbar.setProgress(lastProgress);
} else {
seekbar.setProgress(progress);
}
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
lastProgress = seekBar.getProgress();
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
};
这意味着风景消失了,这不是我想要的。错了。它不会删除视图,而是禁止用户与视图交互。阅读你的文档。啊,好的。我们将测试它。谢谢seekbar.setEnabled(true)或seekbar.setEnabled(false)不起作用。它不会阻止seekbar移动。mhh。好啊谢谢我想如果seekbar被切换,我会简单地停止这个动作。setEnabled(false)实际上会使seekbar整体模糊。如果我们只想禁用touch,这是一个完美的解决方法。如果您想在阻塞和取消阻塞seekbar之间切换,只需在onTouchListener中添加一个全局布尔变量,例如:`If(globalbooleanvar){return true}else{return false}`对meI不理解。为什么
setEnabled()
不是一个好选项?对我来说,它工作得很好。当你设置setEnabled(真/假)时,视图会显示一些模糊,这意味着它不能直接显示,不能单击启用,这不是OP要求的。