[英]show a progress bar from ViewHolder in 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" />
这是我的视图持有人代码:
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。
问题非常简单,包含进度条的方法应该是异步方法:
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的按钮单击是一种不好的做法,如果需要的话,请务必在按钮单击事件生成全局变量之前进行操作。
祝好运! 快乐的编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.