ProgressBar中的android:progressBarStyle属性是啥意思?
Posted
技术标签:
【中文标题】ProgressBar中的android:progressBarStyle属性是啥意思?【英文标题】:What's the meaning of android:progressBarStyle attribute in ProgressBar?ProgressBar中的android:progressBarStyle属性是什么意思? 【发布时间】:2011-05-16 09:15:24 【问题描述】:我一直在查看 ProgressBar
类的文档并找到了这些属性:
我认为这四个参数应该是对某种风格的引用。那么问题来了,这些是干什么用的?进度条的样式是通过 android:style 属性和对全局样式属性的引用来设置的。
文档没有说任何有用的东西,搜索了网络,一无所获。
【问题讨论】:
【参考方案1】:您提到的四个属性可以应用于ProgressBar
的样式,如下所示:
style="?android:attr/progressBarStyleHorizontal"
样式常量android:progressBarStyleHorizontal
是典型的增量进度条:
而其他三个是不同大小的同一个圆形进度条:
style="?android:attr/progressBarStyleSmall"
style="?android:attr/progressBarStyle"
style="?android:attr/progressBarStyleLarge"
更新:
根据adap的cmets:
这些是主题的属性 指向您可以使用的主题样式 进度指示器...它们不是 ProgressBar 本身的属性。
【讨论】:
文档的意思是它所说的,它只是不是非常冗长。 ;) 这些是主题的属性,指向可用于进度指示器的主题样式。它们的确切值可以因主题而异,这只是一个间接层。这个答案是正确的。将样式属性设置为其中之一。它们不是 ProgressBar 本身的属性。 @adamp:感谢您的澄清,我会更新我的答案以反映您的 cmets。 所以答案基本上是“它们不是 ProgressBar 本身的属性”。是的,我知道如何设置进度条的样式。 :) 我只是想知道,如果更改属性会发生什么变化,但是如果这些属性实际上不是属性,那么一切都会变得清晰。附言Android 文档的某些部分真的很烂。 它们是属性,但它们是主题的属性,而不是 ProgressBar 小部件的属性。带有“?”的“?android:attr/foo”语法sigil 的意思是,“在当前主题中解析包含在这个主题属性中的资源。” 我设计和自定义视图并将其用作 lib 组件。在这里,我正在使用进度条,但无法更改 style="?android:attribute 相同的。它显示相同的进度条我检查了相同的其他参数以确保我使用相同。任何建议!!!跨度> 【参考方案2】:如果有人正在寻找完整的代码块
<ProgressBar
android:id="@+id/ProgressBar2"
style="?android:attr/progressBarStyleLarge"
android:layout_
android:layout_ />
【讨论】:
【参考方案3】:令人困惑的是,通常情况下,您可以像这样为小部件(例如按钮)定义默认样式:
<item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
默认情况下,所有按钮都会应用此样式。
如果这样做,人们会认为 progressBarStyle 属性会对 ProgressBar 做同样的事情:
<item name="android:progressBarStyle">@style/Widget.AppCompat.ProgressBar</item>
但事实并非如此,因为progressBarStyle
属于ActionBar
样式。
【讨论】:
当您使用 AppCompat 时,您应该使用progressBarStyle
而不是 android:progressBarStyle
。对于除android:textViewStyle
之外的所有小部件都是如此。同意这令人困惑。
不正确,您只需要对属于 AppCompat...
小部件的属性执行此操作(例如 AppCompatEditText
、AppCompatImageView
等)。没有AppCompatProgressBar
,所以定义progressBarStyle
没有Android前缀是没有效果的。
该死,你是对的,忘记了。它甚至没有连接到 AppCompat 的progressBarStyle
。根据ProgressBar
源代码,它应该默认选择android:progressBarStyle
。你为什么不调查为什么这在你的情况下不起作用? Stack Overflow 不是论坛,您的帖子并不能真正回答问题。以上是关于ProgressBar中的android:progressBarStyle属性是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
从 IntentService 访问 Recyclerview 中的 TextView 和 Progressbar
下载文件时如何更新UICollectionViewCell子类中的progressBar
csharp Console C中的ProgressBar#