0

私は、実行時にいくつかのロジックによって決定された日付ごとに特定のイメージを含む暦月ビューを表示するための断片を持っています。フラグメントの読み込みに時間がかかるので、私は進捗バーを表示したい。プログレスバー自体はフラグメントビューの一部なので、asynctaskが終了する前にどのように表示すればいいですか?フラグメントビューは、asynctask内に配置されたロジックごとに作成されます。フラグメントビューロードがasynctaskの一部であるときに、フラグメントロード前に進行状況バーを表示する方法は?

わかりやすくするためのコードスニペットを表示しています。

public class CalendarMonthViewFragment extends Fragment implements OnCalculateMonthlyCompleted { 

@BindView(R.id.progressBar) ProgressBar progressBar; 

@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, 
         @Nullable Bundle savedInstanceState) { 

    new CalculateMonthlyDataTask(this, progressBar).execute(); //asynctask that decides the view 
    return inflater.inflate(R.layout.calendar_monthview_fragment, container, false); 

} 

    private class CalculateMonthlyDataTask extends AsyncTask<Void, Void, MonthlyDataResult> { 

    private OnCalculateMonthlyCompleted listener; 
    private ProgressBar progressBar; 

    private CalculateMonthlyDataTask(OnCalculateMonthlyCompleted listener, ProgressBar progressBar) { 
     this.listener = listener; 
     this.progressBar = progressBar; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     //progressBar.setVisibility(View.VISIBLE); 
    } 

    @Override 
    protected void onProgressUpdate(Void... values) { 
     super.onProgressUpdate(values); 
    } 

    @Override 
    protected void onPostExecute(MonthlyDataResult monthlyDataResult) { 
     super.onPostExecute(monthlyDataResult); 
     //progressBar.setVisibility(View.GONE); 

     listener.onTaskCompleted(monthlyDataResult); 
    } 

    @Override 
    protected MonthlyDataResult doInBackground(Void... params) { 

     panchangMonthlyController.calculateMonthlyCalendar(); 
     return panchangMonthlyController.getMonthlyDataResult(); 
    } 

} 
} 

答えて

0

をロードしたときにそれをキャンセルし、私はこの使用してProgressDialogを解決する方法ことを考え出しました。この例では、ビューがロードされる前にprogressDialogを表示し、ビューがロードされた後にprogressDialogをキャンセルします。

0

あなたはActivityクラスにプログレスバーを示す必要があり、フラグメントが

+0

これを行う方法を示すコードを提案できますか – truespan

関連する問題