Я внедрил общедоступный пост VerticalSeekBar здесь. Как бы то ни было, SeekBar работает немного причудливо. Вот мой слегка адаптированный onTouchEvent()
из этого примера:
public boolean onTouchEvent(MotionEvent event)
{
xPos = event.getX();
yPos = event.getY();
oOffset = this.getThumbOffset();
oProgress = this.getProgress();
//Code from example - Not working
//this.setThumbOffset( progress * (this.getBottom()-this.getTop()) );
this.setProgress((int)(29*yPos/this.getBottom()));
return true;
}
Мне удалось реализовать один VerticalSeekBar, в котором прогресс обновляется, как ожидается, и является полностью функциональным, но большой палец не подходит. Это всего лишь графический глюк, поэтому я сейчас его не замечаю. Но было бы неплохо, если бы это работало. Этот SeekBar имеет max = 20
.
Однако я попытался реализовать еще один VerticalSeekBar с помощью max = 1000
. Очевидно, что он использует один и тот же код, поэтому вы принимаете такое же поведение. Я могу достичь прогресса 0 ~ 35, даже когда мой палец скользит за пределы SeekBar и, в конечном счете, с экрана. Если я просто коснусь конца индикатора выполнения (который должен быть progress ~ 900
), он возвращает прогресс около 35, а желтый индикатор выполнения отражает это значение, оставаясь рядом с вершиной.
Мой вопрос: имеет ли кто-нибудь ссылку на рабочий вертикальный SeekBar или знает, как адаптировать этот конкретный пример?