Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the meaning of android:progressBarStyle attribute in ProgressBar?

I've been looking through the documentation for ProgressBar class and found these attributes:

  • android:progressBarStyle
  • android:progressBarStyleHorizontal
  • android:progressBarStyleLarge
  • android:progressBarStyleSmall

These four parameters are supposed to be a reference to some style as I take it. So the question is, what are these for? Style for the progress bar is set via android:style attribute and a reference to the global style attributes.

Documentation doesn't say anything helpful, searched the Web, found nothing.

like image 461
Malcolm Avatar asked Nov 26 '10 22:11

Malcolm


3 Answers

The four attributes that you mention can be applied to a ProgressBar's style like so:

style="?android:attr/progressBarStyleHorizontal"

The style constant android:progressBarStyleHorizontal is your typical incremental progress bar:

alt text

While the other three are varying sizes of the same circular progress bar:

style="?android:attr/progressBarStyleSmall"

alt text

style="?android:attr/progressBarStyle"

alt text

style="?android:attr/progressBarStyleLarge"

alt text

Update:

According to adamp's comments:

These are attributes of the theme that point at themed styles you can use for progress indicators...They are not attributes for ProgressBar itself.

like image 196
McStretch Avatar answered Oct 19 '22 14:10

McStretch


In case if someone is looking for full block of code

<ProgressBar
android:id="@+id/ProgressBar2"
style="?android:attr/progressBarStyleLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
like image 2
Zohab Ali Avatar answered Oct 19 '22 15:10

Zohab Ali


The confusing part is that normally, you can define a default style for a widget (e.g. a button) like this:

<item name="android:buttonStyle">@style/Widget.AppCompat.Button.Colored</item>

All buttons will then by default have this style applied.

One would think that the progressBarStyle attribute would do the same for ProgressBar if doing this:

<item name="android:progressBarStyle">@style/Widget.AppCompat.ProgressBar</item>

But that is not the case, since progressBarStyle belongs to the ActionBar styleable.

like image 1
Timon Langlotz Avatar answered Oct 19 '22 14:10

Timon Langlotz