I am using a custom title view and would like to show/hide a progressbar in the title view when a thread is working.
This is my title view’s XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/image_left_btn"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:text="Back"
/>
<TextView
android:id="@+id/image_title_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="20dip"
android:textStyle="bold"
android:textColor="#fff"
android:layout_gravity="center"
android:gravity="center"
android:paddingLeft="8dip"
android:paddingRight="8dip"
/>
<ProgressBar
android:id="@+android:id/progress_small_title"
style="?android:attr/progressBarStyleSmall"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:paddingRight="8dip"/>
</LinearLayout>
In my Activity, after setting this as the custom title bar, I do this
titleProgress = (ProgressBar)findViewById(R.id.progress_small_title);
titleProgress.setVisibility(View.INVISIBLE);
where titleProgress is ProgressBar object.
This is what I do in my thread
runOnUiThread(new Runnable() {
public void run() {
titleProgress.setVisibility(View.VISIBLE);
}
});
//long operation here
runOnUiThread(new Runnable() {
public void run() {
titleProgress.setVisibility(View.INVISIBLE);
}
});
But there is no change to the progress bar. It is never displayed. Can someone please tell me what is wrong with the code?
Is it possible to display the title progressbar in a custom title?
Thanks.
Few Things to try:
1) (This probably isn’t it) Make sure “
titleProgress” is volatile.2) Try throwing a few
postInvalidate()ortitleProgress.postInvalidate()in there to trigger a redraw.3) Have you sacraficed a x486 machine on an alter resembling a giant green robot? (just kidding)
Let me know if those first two (and if you’re really desperate, the third) get you anywhere.