假设我有这段代码:
XML
<FrameLayout android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
<android.support.v7.widget.RecyclerView
android:id="@+id/photo_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
程序
private class FetchItemsTask extends AsyncTask<Void, Void, List<GalleryItem>> {
private String mQuery;
public FetchItemsTask(String query) {
mQuery = query;
}
@Override
protected List<GalleryItem> doInBackground(Void... params) {
if (mQuery == null) {
return new FlickrFetchr().fetchRecentPhotos();
} else {
return new FlickrFetchr().searchPhotos(mQuery);
}
}
@Override
protected void onPostExecute(List<GalleryItem> galleryItems) {
mItems = galleryItems;
setupAdapter();
}
}
当AsycnTask在后台运行时,如何实现旋转ProgressBar并隐藏RecyclerView?很抱歉,如果这看起来像一个简单的问题,但我发现的唯一答案是使用ProgressDialog,它在API 26中已弃用。提前感谢您。
答案 0 :(得分:1)
覆盖预执行方法并显示进度对话框。
答案 1 :(得分:1)
您可以在onPreExecute()
中显示微调器并将其隐藏在onPostExecute()
。
class Your_Class extends AsyncTask<...>
{
ProgressBar pb;
Your_Class(){
// initialize pb
}
Protected void onPreExecute(){
// show progressbar
}
protected void onPostExecute(Bitmap image){
// hide progressbar
}
}