我希望这是一个简单的问题。
我有一个搜索栏,我想限制它可以设置的范围。此范围可能会根据其他因素(其他搜索栏的值等)而改变。
搜索栏是一个简单的0到100范围,并定义了一个百分比。我需要这个值是最小值,范围从0%(正常搜索栏操作)到更高值(例如50%)。
代码执行计算并根据其他变量确定最小值。
当我将搜索栏拖动到此阈值以下时,我希望它将其值重置为该最小值。这是一些示例代码
seek6.setOnTouchListener( new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP) {
int CurrentLevel = seek6.getProgress();
if (CurrentLevel < 30) CurrentLevel = 30;
seek6.setProgress(CurrentLevel);
}
return false;
}
});
因此,在此示例中,如果我拖动到30以下,则该值将重新设置为30。
如果我拖到30以上,一切都很好。如果我拖动到30标记以下,那么搜索条GetValue()将返回30,但搜索条显示较低的值。
例如,如果我将它一直向下拖动到0,则返回值为30,但在屏幕上显示为0.
如何让搜索栏自动重新显示在30位置?
我试图改变焦点,从另一种方法更新搜索栏。到目前为止,没有任何工作。
有什么想法吗?
答案 0 :(得分:1)
经过多次艰苦的搜寻后,我得到了答案。
seek6.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
public void onStopTrackingTouch(SeekBar seekBar){
// TODO My code goes here
int CurrentLevel = seek6.getProgress();
if(CurrentLevel < 30)
CurrentLevel = 30;
seek6.setProgress(CurrentLevel);
}
public void onStartTrackingTouch(SeekBar seekBar){}
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){}
});
感谢任何一直在研究此事的人。
答案 1 :(得分:0)
我认为它会对你有帮助..
final TextView t1 = (TextView) findViewById(R.id.t1);
final SeekBar sk = (SeekBar) findViewById(R.id.seekBar1);
sk.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
int p = 0;
@Override
public void onStopTrackingTouch(SeekBar seekBar){
if(p < 30){
p = 30;
sk.setProgress(p);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar){}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
p = progress;
t1.setTextSize(p);
}
});