【问题标题】:How do I implement a spinning ProgressBar on a AsyncTask while the data is loading?如何在加载数据时在 AsyncTask 上实现旋转 ProgressBar?
【发布时间】:2018-06-25 00:03:38
【问题描述】:

假设我有这个代码:

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 中已被弃用。提前谢谢您。

【问题讨论】:

  • ProgressBar 已被弃用,因为它会阻止 UI。谷歌认为你应该这样做,但你应该在你的视图中显示 loadingSpinner。但如果你不在乎,你可以使用 ProgressDialog 就好了。

标签: java android android-asynctask progress-bar


【解决方案1】:

覆盖预执行方法并显示进度对话框。

【讨论】:

    【解决方案2】:

    您可以在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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 2015-11-15
      相关资源
      最近更新 更多