0

为 seekbar 实现了以下回调:

void onProgressChanged(Seekbar seekBar, int progress, boolean fromTouch);

void onStartTrackingTouch(Seekbar seekBar);

void onStopTrackingTouch(Seekbar seekBar);
  1. 但是当在搜索栏上按下 OK 时会收到什么回调?

  2. onStartTrackingTouch() 在用户刚刚开始移动搜索栏时被接收。当用户完成移动搜索栏时收到 onStopTrackingTouch()。我在这些定义中是正确的还是这两个回调是为了别的什么?

有人可以帮忙解决这两个问题吗?谢谢

4

1 回答 1

1

你是什​​么意思

但是当在搜索栏上按下 OK 时会收到什么回调?

你有一个应该实现某些东西的确定按钮吗?如果是这样,您可以在进度更改时使用整数值来保存进度,然后当您按下确定按钮时,您可以执行任何您想要的操作。看这个例子

    seekerSpacing.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            doSomethingAfterTracking();
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            doSomethingWhenTrackingStarts();
        }

        /**
        * seekBar   The SeekBar whose progress has changed
        * progress  The current progress level. This will be in the range 0..max where max was set by setMax(int). (The default value for max is 100.)
        * fromUser  True if the progress change was initiated by the user.
        */
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            setMyCurrentProgress(progress);
            doSomeOtherMethodIfRequired();
        }
    });

您可以查看 Android文档以获得正确的解释。但这里有一个快速的总结。

onStartTrackingTouch只要您触摸搜索栏,就会调用该方法。当您触摸搜索栏滑块时,将始终调用此方法

onStopTrackingTouch只要您放开搜索栏,就会调用该方法。当您放开搜索栏滑块时,将始终调用此方法。

onProgressChanged只要搜索栏的进度发生更改,就会调用该方法。该方法只会在进度发生变化时调用

于 2013-03-14T06:24:09.940 回答