Я пытаюсь изменить цвет выполнения пользовательского вертикального SeekBar Как получить рабочий вертикальный SeekBar в Android? , и он работает нормально, если я помещаю этот код в View.OnTouchListener:
VerticalSeekBar verticalSeekBar1 = (VerticalSeekBar)verticalSeekBar;
Rect bounds = verticalSeekBar1.getProgressDrawable().getBounds();
int progr = verticalSeekBar1.getProgress();
int max = verticalSeekBar1.getMax();
int width = verticalSeekBar1.getWidth();
int height = verticalSeekBar1.getHeight();
prDr = verticalSeekBar1.getProgressDrawable();
verticalSeekBar1.setProgressDrawable(r.getDrawable(R.drawable.myprogress));
verticalSeekBar1.getProgressDrawable().setBounds(bounds);
verticalSeekBar1.setMax(max);
verticalSeekBar1.setProgress(1);
verticalSeekBar1.setProgress(progr);
verticalSeekBar1.onSizeChanged(width, height);
verticalSeekBar1.refreshDrawableState();
Однако, если я помещаю этот же код в другой поток, он работает частично, так как большой палец панели поиска не перемещается в правильное положение и вместо этого падает, но цвет прогресса работает хорошо и добирается допоследняя позиция.Я понял, что метод onSizeChanged, вероятно, вызывает это.Я отладил его и обнаружил, что в обоих сценариях метод onSizeChanged имеет соответствующие аргументы, но в коде из потока он не обновляет панель поиска.
Я уже пытался переместить этот код в поток пользовательского интерфейса, но не работаетлибо.