Android는 훌륭한 모바일 플랫폼이지만 완벽한 플랫폼은 아니기에 몇몇 버그들을 포함하고 있다.

오늘 개발하는 중에 발견한 버그는 ProgressBar와 관련된 버그다.

Android의 View는 setViewVisibility(int viewId,int visibility) 함수를 통해 화면에


나타나게 할 건지 
안 나타나게 할 것인지를 설정할 수 있다.

 


문제는 이 setViewVisibility() 함수가 거의 모든 View에 대해서는 정상적으로 작동하는데




ProgressBar에 대해서만 정상적으로 동작하지 않는다.


(2.3 Ginger에서는 ProgressBar에 대해서도 정상 동작한다.)


아래 주소의 글을 참고하면 이유를 알 수 있다. ^^

http://www.mail-archive.com/android-developers@googlegroups.com/msg50097.html


따라서 코드에서 동적으로 ProgressBar를 활성화, 비활성화 시키기를 원 할 경우 


ProgressBar를 Layout으로 감싼 뒤 Layout을 활성화, 비활성화 시키는 방법을 권유한다!





<LinearLayout android:id=“@+id/wrapper”

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”>

<ProgressBar android:id=“@+id/down_progress”

android:paddingLeft=“5dip”

android:paddingRight=“5dip”

android:indeterminate=“false”

style=“@android:style/Widget.ProgressBar.Horizontal”

android:layout_width=“fill_parent”

android:layout_height=“wrap_content” />

</LinearLayout>





notification.contentView.setViewVisibility(R.id.wrapper, View.GONE);