此問題的完整解決方案如下。以防萬一某人需要代碼片段,這就是我所做的。
- 複製所有8不確定的水平進度繪項目
- 編輯使用一些像機械手可繪製並刪除不必要的墊襯
- 複製從Android平臺
- 複製的風格插件的繪製名爲progress_indeterminate_horizontal_holo.xml XML。 ProgressBar.Horizontal及其父母
- 在佈局中手動設置樣式和min_height
這裏是progress_indeterminate_horizontal_holo.xml複製到我的地方風格文件
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/progressbar_indeterminate_holo1" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo2" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo3" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo4" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo5" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo6" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo7" android:duration="50" />
<item android:drawable="@drawable/progressbar_indeterminate_holo8" android:duration="50" />
樣式資源。
<style name="Widget">
<item name="android:textAppearance">@android:attr/textAppearance</item>
</style>
<style name="Widget.ProgressBar">
<item name="android:indeterminateOnly">true</item>
<item name="android:indeterminateBehavior">repeat</item>
<item name="android:indeterminateDuration">3500</item>
</style>
<style name="Widget.ProgressBar.Horizontal">
<item name="android:indeterminateOnly">false</item>
<item name="android:indeterminateDrawable">@drawable/progress_indeterminate_horizontal_holo</item>
</style>
最後,在我的本地佈局文件中設置最小高度爲4dp。
<ProgressBar
android:id="@+id/pb_loading"
style="@style/Widget.ProgressBar.Horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:indeterminate="true"
android:minHeight="4dp"
android:minWidth="48dp"
android:progressDrawable="@drawable/progress_indeterminate_horizontal_holo" />
這對於默認樣式的更改有多強大?他們是否保證在所有的永恆中看起來和工作都一樣,或者他們在理論上可以隨時用替代它們的東西來替代它們,這會導致問題(例如看不見的進度條)。 – Joey
這不適用於所有設備。在Galaxy S6上,即使使用'-6dp'頂部邊距,進度條上方的空白仍然可見。 –