2010-05-25 5 views
0

Horizontal Progressbar 너비를 프로그래밍 방식으로 변경하고 싶습니다. (초기 크기는 RelativeLayout을 사용하여 XML로 설정되었지만 특정 값에 따라 동적으로 변경하려고합니다.)프로그래밍 방식으로 가로 진행 막대의 너비를 변경할 수 없습니다.

내 코드에서 setMinimumWidth (50)을 시도했지만 차이가 없습니다. 나는 또한 'android : layout_width = "wrap_content"설정을 시도했지만, 그 중 하나를 작동하지 않았다. 어떤 도움을 사전에

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

감사 :

여기 내 XML입니다!

답변

0

ProgressBar의 레이아웃은 무엇입니까? 이는 layout_width 및 height가 어떻게 해석되는지에 차이가 있습니다.

그러나 View의 너비와 layout_width 사이에 충돌이있는 것으로 생각됩니다. 뷰가 렌더링 될 때마다 기본 크기는 해당 뷰에 설정된 minWidth, width 등을 기준으로 결정됩니다. 뷰가있는 레이아웃은 layout_width 정보를 기반으로 렌더링하기 위해 실제 크기를 업데이트 할 수 있습니다. 2 단계 프로세스에 대한 자세한 내용은 How Android Draws ViewsView 크기 설명서를 참조하십시오. 귀하의 경우에는

, 당신은 100에 layout_width 세트, 50로 설정 최소 폭을 가지고, 그래서 나는 항상

(100)가 선호하는 업데이트 후 wrap_content하는 layout_width 설정을 시도하고 보여줄 것이라고 생각합니다 ProgressBar의 너비.

+0

빠른 응답을 보내 주셔서 감사합니다! RelativeLayout을 사용하고 있습니다 (아래 참조). 나는 XML의 layout_width를 wrap_content로 변경했지만, 영향을받지 않았다. (진행 막대는 고정 크기로 유지되는 것처럼 보였다. 상대적으로 작았 다. setMinimumWidth를 어떻게 변경했는지에 관계없이. 내가 제공 한 문서 링크를 체크 아웃 할 것이다. ​​ – user380686

+0

원래의 게시물을 편집하여 추가 RelativeLayout 정보를보다 읽기 쉬운 방식으로 제공 할 수 있습니다! 전체 레이아웃, RelativeLayouts를 사용하면 레이아웃의 여러보기가 서로 영향을 미치기 때문에. –

0

초기 값을 100으로 지정하면 setmindwidth가 충족 될 것이라고 생각합니다. 시스템이이를 인식하여 50을 초과 한 다음 나머지 부분으로 계속 수행합니다. 최소 폭 150을 만들고 xml을 초기 값 75로 설정하고 onCreate에서 Log.d ("progbar", String.valueOf (myprogress.width))를 시작합니다.

고지 - 참조 용 개발 환경이없는 업무용 컴퓨터 앞에있을 때 작성됩니다.

+0

빠른 응답 주셔서 감사합니다. 폰세. layout_width에 대해 xml을 75dip으로 변경했습니다. 그런 다음 setMinimumWidth (200) 및 reran. 불행하게도, 이것은 효과가 없었습니다 (즉, 막대의 크기를 늘리지 않았습니다). "D/progbar (565) : 0"과 같이 로그 정보가 동일 할 때와 setMinimumWidth (200) 전에 Log.d ("progbar", String.valueOf (myprogress.getWidth() – user380686

관련 문제