Android SeekBar Jiggles - PullRequest
       8

Android SeekBar Jiggles

0 голосов
/ 10 июля 2011

Я не видел, чтобы эта проблема была освещена на SO, так что здесь все идет.У меня есть панель поиска, которая предотвращает поиск за пределами среднего прогресса (в данном случае, буферизация музыки).Допустим, песня длится 5 минут, 4 минуты буферизованы, и она воспроизводится с отметкой в ​​одну минуту.Когда я иду тащить большой палец, он отлично тянет и опускает.Проблема в том, что когда я прекращаю перетаскивать (не отпуская), а затем перетаскиваю снова, большой палец быстро прыгает из текущей воспроизводимой позиции (1 минута) в позицию, которую я перетаскиваю.Когда я выпускаю, все в порядке, это только проблема с перетаскиванием большого пальца.Вот мой слушатель seekbar ....

private SeekBar.OnSeekBarChangeListener seekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {

    public void onProgressChanged(SeekBar seekBar, int progress,
            boolean fromUser) {

        int secondaryPosition = seekBar.getSecondaryProgress();
        if (progress > secondaryPosition) {
            seekBar.setProgress(secondaryPosition-1);
        }
    }

    public void onStartTrackingTouch(SeekBar seekBar) {

    }

    public void onStopTrackingTouch(SeekBar seekBar) {
        seekMediaPlayerToSeekBarTouch(seekBar);
    }

};

1 Ответ

1 голос
/ 08 августа 2011

Полагаю, у вас есть Handler или Thread для обновления SeekBar? Я бы порекомендовал установить базовую проверку, чтобы увидеть, обрабатывает ли пользователь SeekBar, поэтому он не будет пытаться перерисовать большой палец для SeekBar, пока он обрабатывается. Просто установите логическое значение, например mSeekbarTracking в true, в методе onStartTrackingTouch(), затем в модуле обновления SeekBar убедитесь, что значение mSeekbarTracking равно false, прежде чем попытаться обновить его.

Я не знаю, решит ли это все ваши проблемы. Может быть, вы могли бы попробовать это и посмотреть, как это влияет на вашу проблему. Вероятно, это поможет нам, если вы опубликуете код, который вы используете для обновления SeekBar.

Приветствия

...