0

我希望这是一个简单的问题。

我有一个搜索栏,我想限制它可以设置的范围。此范围可能会根据其他因素(其他搜索栏的值等)而改变

搜索栏是一个简单的 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 位置?

我试图改变焦点,从另一种方法更新搜索栏。到目前为止没有任何效果。

有任何想法吗?

4

2 回答 2

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){}
});

感谢任何一直在研究这个的人。

于 2011-01-13T15:07:41.250 回答
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);
        }
    });
于 2012-07-24T04:57:05.033 回答