在Xamarin.Android

时间:2018-03-26 14:31:00

标签: c# android xamarin.android

我创建了一个回收站视图,一切正常。列表视图中的每个项目都有两个按钮。如何在按钮点击事件上显示加载栏/进度条?

我已经在回收站视图中进行了进度条控制,我可以在按钮点击事件中访问它。按钮点击执行完成后,进度条呈现。

这是我的axml代码:



 <ProgressBar
       style="?android:attr/progressBarStyleLarge"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/progressBar1"
       android:layout_centerVertical="true"
       android:layout_centerHorizontal="true"
       android:progressDrawable="@drawable/circularProgressView" />
&#13;
&#13;
&#13;

这是我的观看持有人代码:

   private void BtnProcessAction_Click(object sender, EventArgs e)
    {
        //new Activity().RunOnUiThread(() =>
        //{
        //    mProgressBar.Visibility = ViewStates.Visible;
        //});
        mProgressBar = ItemView.FindViewById<ProgressBar>(Resource.Id.progressBar1);
        mProgressBar.Visibility = ViewStates.Visible;
    }

在完成执行之前,他们都无法更新UI。

1 个答案:

答案 0 :(得分:0)

问题非常简单,包含进度条的方法应该是异步方法:

mProgressBar = ItemView.FindViewById<ProgressBar>(Resource.Id.progressBar1);
private async void BtnProcessAction_Click(object sender, EventArgs e)
{
    mProgressBar.Visibility = ViewStates.Visible;
    await someMethod(); 
    mProgressBar.Visibility = ViewStates.Gone;
}

在按钮点击事件发出全局变量之前,在点击按钮上找到id是一个不好的做法。

古德勒克! 快乐的编码。