2016-09-05 2 views
0

스크롤 막대에 진행 막대가 있으며 프로그래밍 방식으로 너비를 수정하고 싶습니다만, XML에서 불가능한 것처럼 보입니다.이 진행 막대 만 있습니다.프로그래밍 방식으로 수평 진행 막대 너비를 업데이트하십시오 (수평 스크롤보기에서)

<HorizontalScrollView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <ProgressBar 
     android:id="@+id/progressbar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     style="?android:attr/progressBarStyleHorizontal" /> 
</HorizontalScrollView> 

그리고 코드도 매우 간단하다 :

progressBar.getLayoutParams().width = 3000; 
progressBar.invalidate(); 
:

ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressbar); 
progressBar.setMinimumWidth(3000); 
progressBar.invalidate(); // tried called invalidate although setMinimumWidth called requestLayout, not help 

나는이 같은 레이아웃 폭을 설정하려고 0

그러나 스크롤보기가 아닌 progressbar에서만 작동하는 것으로 나타났습니다 ...

가로 스크롤보기에서 진행률 막대 너비를 어떻게 업데이트 할 수 있습니까? 왜 스크롤 뷰가 진행 바의 너비를 왜곡합니까? 감사합니다.

+1

앞으로는 질문을 삭제하지 말고 다시 질문하십시오. – CommonsWare

+0

@CommonsWare, 원래 질문에서 큰 변화가 있었기 때문에 나는 그것을했으나 당신의 코멘트를 얻었고 앞으로는 그것을하지 않을 것입니다. 감사! – AsfK

+0

"원래의 질문에 큰 변화가 있었기 때문에 해냈습니다."- 그것이 바로 "편집"링크입니다. :-) – CommonsWare

답변

3

올바른 방법으로 매개 변수를 설정하지 않았습니다. 시도해보십시오.

HorizontalScrollView.LayoutParams params = (HorizontalScrollView.LayoutParams) progressBar.getLayoutParams(); 
params.width = 3000; 
progressBar.setLayoutParams(params);