Невозможно программно изменить ширину горизонтального индикатора выполнения - PullRequest
0 голосов
/ 25 мая 2010

Я хотел бы программно изменить ширину горизонтальной панели прогресса (начальный размер задается в XML с помощью RelativeLayout ... но я хотел бы динамически изменять его в зависимости от определенных значений).

Я пробовал setMinimumWidth (50) в моем коде, но это не имело значения. Я также попытался установить 'android: layout_width = "wrap_content", но это тоже не сработало.

Вот мой XML:

<ProgressBar android:id="@+id/progress_horizontal"
     style="?android:attr/progressBarStyleHorizontal"
     android:layout_width="100dip"
     android:layout_height="wrap_content" 
/>

Заранее спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 26 мая 2010

Я бы предположил, что заданная пропускная способность будет достигнута, когда вы дадите ей начальное значение 100. Система распознает, что оно превышает 50, а затем продолжит делать то, что сказано. попробуйте сделать минимальную ширину 150, установите xml для начального значения 75 и в вашем onCreate запустите Log.d ("progbar", String.valueOf (myprogress.width));

Disclaimer - написано перед рабочим компьютером без среды разработки для справки.

0 голосов
/ 25 мая 2010

В каком макете находится ваш ProgressBar? Это влияет на то, как интерпретируются layout_width и height.

Тем не менее, я думаю, что вы видите конфликт между шириной просмотра и layout_width. Каждый раз, когда представление отображается, его предпочтительный размер определяется на основе minWidth, width и т. Д., Установленных для него. Макет, в котором находится представление, может затем обновить фактический размер для рендеринга на основе информации layout_width. См. Как Android рисует представления и Просмотр документации по размеру для получения дополнительной информации о двухфазном процессе.

В вашем случае для layout_width установлено значение 100, а для минимальной ширины установлено значение 50, поэтому я думаю, что всегда будет отображаться значение 100.

Попробуйте установить для layout_width значение wrap_content, а затем обновите предпочтительную ширину для ProgressBar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...