如何在样式表中指定progressBarStyleHorizo​​ntal属性

问题描述:

我想将progressBarStyleHorizontal属性放在样式表中。 我试过这个,但它没有奏效。如何在样式表中指定progressBarStyleHorizo​​ntal属性

<style name="BarraProgreso"> 
    <item name="android:progressDrawable">@android:style/Widget.ProgressBar.Horizontal</item>  
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:padding">7dp</item> 
    <item name="android:indeterminate">true</item> 
</style> 

你知道怎么可以在样式表中使用这个属性吗?

在此先感谢。

+0

用*“样式表”*您是指CSS?我很困惑你试图做什么......你如何将这种风格应用于你的观点? – rekire 2014-10-04 13:22:42

那么,nitzanj是正确的问题是风格。也许这是你想要什么:

<style name="BarraProgreso" parent="@android:style/Widget.Holo.Light.ProgressBar.Horizontal"> 
     <item name="android:layout_width">match_parent</item> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:padding">7dp</item> 
     <item name="android:indeterminate">true</item> 
</style> 

凡使用Holo.Light主题提供了以下结果:

enter image description here

这就是你如何使用您的新创建的样式:

<ProgressBar 
     android:id="@+id/yourIDProgressBar" 
     style="@style/BarraProgreso" /> 

希望这会有所帮助:)

+0

谢谢呃,这正是我所期待的 – Axel 2014-10-05 03:12:15

最简单的解决办法是让你的自定义进度条样式扩展所需的样式像这样:

<style name="BarraProgreso" parent="@android:style/Widget.ProgressBar.Horizontal"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:padding">7dp</item> 
    <item name="android:indeterminate">true</item> 
</style> 

注意这个原因,你试过什么行不通是因为你想分配一个风格价值转化为可绘制的,这是不可能的。通过扩展原始样式,您可以获得所有属性,同时仍然可以覆盖任何属性,以防父级样式不是您需要的100%。

+0

谢谢@nitzanj它的工作原理,但它看起来不像我所期望的。我希望我的进度条类似于卸载应用程序时显示的进度条。为了得到这个结果,我直接在窗口小部件中使用了'style =“?android:attr/progressBarStyleHorizo​​ntal',但是因为如果你有很多这些窗口小部件,这是不实际的,我想把它们放在styles.xml中 – Axel 2014-10-04 13:36:37