我想为水平 ProgressBar 编写自定义样式。
如果你想添加一个水平的 ProgressBar,它需要像这样引用系统样式:
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
我为它写了一个自定义样式,添加了一些父元素,但是由于已经有一个样式参考,它赋予了它水平形状,我需要从这个系统样式继承。
我试过这样:
<style name="itemViewProgressBar" parent="@android:attr/progressBarStyleHorizontal">
<item name="android:paddingLeft">@dimen/ivProgressBarPaddingLeft</item>
<item name="android:paddingRight">@dimen/ivProgressBarPaddingRight</item>
<item name="android:paddingTop">@dimen/ivProgressBarPaddingTop</item>
<item name="android:paddingBottom">@dimen/ivProgressBarPaddingBottom</item>
</style>
在 ProgressBar 我这样引用它:
<ProgressBar
android:id="@+id/progressBar1"
style="@style/itemViewProgressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
样式 xml 没有给我任何错误,所以参考似乎工作正常。但它仍然对 ProgressBar 没有任何影响。它看起来和我忽略了parent
属性一样(即它显示了圆形 ProgressBar)。
我当然可以在ProgressBar
元素本身中定义所有填充,并像默认一样在 ProgressBar 中引用系统样式。但更优雅的方式应该是使用自定义样式,特别是因为我需要经常重用它。
关于如何实现系统水平 ProgressBar 样式和自定义样式中的自定义填充的任何想法?