Android: установка параметра maxHeight программно для ProgressBar / SeekBar - PullRequest
3 голосов
/ 11 марта 2012

Можно создать SeekBar в XML следующим образом ...

<SeekBar xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/bpseekbar"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginTop="3dp"
      android:max="100"
      android:maxHeight="8dp"
      ...

Теперь я хочу сделать это программно, так как мне нужно настроить maxHeight в зависимости от разрешения экрана (да, я знаю, что не следуетсделать это, но у меня есть веские причины для этого).У меня нет проблем с программной настройкой параметров, за исключением того, что я не могу узнать, как установить maxHeight.Я чувствую, что мне нужно использовать атрибуты, но я не мог найти точно, как.Есть намеки?

1 Ответ

5 голосов
/ 21 марта 2012

Это не возможно напрямую.SeekBar (фактически ProgressBar, который расширяет SeekBar) получает maxHeight только из атрибутов макета XML, соответствующего метода нет.

Кроме того, ProgressBar увеличивает свой maxHeight при вызове setProgressDrawable, чтобы он был как минимум на высоте отрисовки.Вы можете использовать это.

Другая возможность - расширить SeekBar и предоставить собственный метод onMeasure.Это на самом деле, где используется maxHeight.Затем вы можете использовать расширенный SeekBar в формате XML.

...