ProgressBar 클래스를 확장하여 수직 진행 막대를 구현했습니다. 내가 의도하지 않은 큰 직사각형 영역을 지우는 것을 제외하고는 모든 것이 잘 작동합니다.수직 진행 막대를 구현할 때 버그가 발생합니다.
내 주요 레이아웃 XML의 진행률 표시 줄의 정의는 다음과 같습니다
<info.realjin.someapp.view.VerticalProgressBar
android:id="@+id/progressbar1" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_marginTop="50dip"
style="@style/Widget.ProgressBar.RegularProgressBar" />
스타일의 XML은 다음과 같습니다
<style name="Widget"></style>
<style name="Widget.ProgressBar">
<item name="android:indeterminateOnly">true</item>
<item name="android:indeterminateBehavior">repeat</item>
<item name="android:indeterminateDuration">3500</item>
<item name="android:minWidth">4dip</item>
<item name="android:maxWidth">40dip</item>
<item name="android:minHeight">4dip</item>
<item name="android:maxHeight">400dip</item>
</style>
<style name="Widget.ProgressBar.RegularProgressBar">
<item name="android:indeterminateOnly">false</item>
<item name="android:progressDrawable">@drawable/newsprogressbar</item>
<item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
<item name="android:minHeight">1dip</item>
<item name="android:maxHeight">400dip</item>
</style>
지금까지 내가 아는 한, 수평 진행 bar (공식 진행 막대) 정의에서 "android : layout_width"속성은 "fill_parent"이어야하고 "android : layout_height"속성은 "wrap_content"여야합니다. 그리고 내 수직 진행 바 정의에서 바 기능을 원활히 얻으려면 위의 두 속성을 역으로 정의해야합니다. 하지만 이렇게하면 시작 부분에서 언급 한대로 진행률 표시 줄의 상단과 하단 사이의 모든보기가 지워집니다. 나는 그것을 어떻게 피할 수 있습니까?
덧붙여서, 저는 실험을했습니다 --- 수직 진행률 막대 클래스가 메서드를 재정의하지 않고 공식 진행률 막대 클래스를 확장하더라도 영역이 지워집니다.
많은 세부 정보를 제공합니다. 사용자 정의보기를 다시 작성하고 내부의 메커니즘을 배우기 위해 튜토리얼을 따라야하거나 아무것도 배우지 않고 오래된 프로그램을 디버깅하는 데 많은 시간을 할애해야한다고 생각합니다. 사실 두 튜토리얼을 병합했습니다 (하나는 세련된 진행입니다. bar, 다른 하나는 수직 진행 바입니다.) 그러나 진행 바에있는 메커니즘을 알지 못합니다. – realjin