我有一个活动,其中包含从网络填充的列表视图。 在加载数据时,我想显示进度对话框而不是列表视图。
我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ProgressBar
android:id="@+android:id/progress_large"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<ExpandableListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
我这样做,以便进度条显示自己(并且这有效):
setProgressBarVisibility(true);
但是,一旦填充了列表视图(使用AsyncTask),我希望进度条消失,但不是这样,它会保持在列表视图之上。
这是我在AsyncTask中所做的:
@Override
protected void onPostExecute(Void result) {
setProgressBarVisibility(false);
//... and some code to update UI
}
答案 0 :(得分:2)
在您的代码中执行此操作,
@Override
protected void onPostExecute(Void result) {
//progressBar.dismiss(); //this dismisses the progressbar
progressBar.setVisibility(ProgressBar.GONE)
//... and some code to update UI
}
答案 1 :(得分:0)
您可以在ProgressBar
的{{1}}方法中创建ProgressDialog
而忽略preExecute
中的AsyncTask
,而不是在布局中使用ProgressDialog
postExecute
方法。
答案 2 :(得分:0)
试试这个:
声明对话框:ProgressDialog对话框;
在onPostExecute:dialog.dismiss();
希望它有所帮助..