Rakesh Rakesh - 3 months ago 98
Android Question

c# xamarin circular progress bar - Android

created a circular progress bar which is working fine with the animation. but while trying to display it using dynamic data progress bar is not updating.

Below code is working

progrssBarObj = FindViewById<ProgressBar>(Resource.Id.progressBarSync);

ObjectAnimator animation = ObjectAnimator.OfInt(progrssBarObj, "progress", 0, 100); // see this max value coming back here, we animale towards that value
animation.SetDuration(3000); //in milliseconds
animation.SetInterpolator(new DecelerateInterpolator());
animation.Start();


and AXML code is

<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_column="2"
android:id="@+id/progressBarSync"
android:layout_width="300dp"
android:layout_height="300dp"
android:progressDrawable="@drawable/circular_progress_bar"
android:background="@drawable/progress_bar_background" />


But when I tried something like in the loop the progress bar is not updating with the data. Basically progress bar is not updating in circle.

for (int i = 0; i <= 100; i++)
{
int cnt = 0;
cnt = cnt + i;
progrssBarObj.Progress = cnt;

}


Any help will be appreciated.

Answer

I kept the for loop inside in new task and it got worked

await Task.Run(() =>
{
  for (int i = 0; i < dtITM.Rows.Count; i++)
  {
    int cnt = 0;
    cnt = cnt + i;
    progrssBarObj.Progress = cnt;
  }
}