5

我想为水平 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 样式和自定义样式中的自定义填充的任何想法?

4

2 回答 2

7

Put this as parent:

<style name="itemViewProgressBar" parent="@android:style/Widget.Holo.Light.ProgressBar.Horizontal">
    <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>

It's the Holo style horizontal ProgressBar.

于 2013-11-07T16:44:07.167 回答
0

尝试这个..

<style name="itemViewProgressBar" parent="@android:style/Widget.ProgressBar.Horizontal">
    <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>
于 2013-11-07T11:43:47.363 回答