ProgressBarは、何かの進捗状況を表現するためだけに使用します。ロジックを保持したり、プロセスを作成したりすることはありません。外部プロセス(AsyncTask、for例)。そのため、ProgressBarはそこにのみ置かれるため、リスナーがなく、取り消しできません。そのため、別のプロセスには、更新するか、終了時に可視性をGONEに設定するオプションがあります。
基本的には、プログレスバー自体について心配する必要はありません。プログレスバーが表すプロセスと、このプロセスがどのようにいつキャンセルされるのかについて心配する必要がありますので、progressBar.setVisibility(View。 GONE)を実行します。
例として、私はProgressBarを使用してPicasaでImageViewの読み込みを表します。ピカソは、読み込みが成功したか失敗したかを知らせるコールバックを提供します。どちらの場合も、ProgressBarの可視性をGONEに設定し、ケースに応じて他のアクションを実行します。 ProgressBarの可視性をいつどのように操作する必要があるかを知っておく必要があると私は言います。
Picasso.with(this)
.load("https://image.tmdb.org/t/p/w640" + m.getPosterPath())
.into(posterImageView, new com.squareup.picasso.Callback() {
@Override
public void onSuccess() {
progressBar.setVisibility(View.GONE);
}
@Override
public void onError() {
progressBar.setVisibility(View.GONE);
noImageFoundTextView.setVisibility(View.VISIBLE);
}
});
OK、あなたの懸念がUXについてです、あなたはユーザーによるプログレスバーがdismissableようにしたい場合、あなたは回避策のこの種を実装することができるように:ImageViewのが扱う
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:layout_marginTop="5dp">
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
<ImageView
android:id="@+id/dismissButton"
android:layout_width="20dp"
android:layout_height="20dp"
android:gravity="center"
android:background="@android:drawable/ic_menu_close_clear_cancel"
android:layout_gravity="center"/>
</FrameLayout>
プログレスバーの却下最上位(親)layout.Apply OnTouchListenerで
dismissButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressBar.setVisibility(View.GONE);
dismissButton.setVisibility(View.GONE);
//Take other actions on dismiss
}
});
この行を入れて、ロードイメージが言うならば非定型場合(遅いNにかなり時間がかかったものを/ W)とあなたのユーザーは、この待ち時間に悩まされて、進行状況バーの外を軽くたたくことを試みました。幸いなシナリオは理想的には、バーの解任とオプションでメッセージを表示することです。 ProgressDialogを使用すると、私はリスナを却下してキャンセルをうまく処理しました。あなたが投稿したもの(可視性の表示)は私がすでに持っているものですが、私はUXのニュアンスを気にしたいと思っていました。 –
私の最新の編集を確認してください、あなたが探しているものに合うかどうかわかりません。 – FerDensetsu
+1まあ、私は最後にこれに行くことはありませんでしたが、これはあなたが示唆しているものはかなりまともです。他のいくつかのレイアウトでこれを正確に実行するかもしれません。ありがとうございました。 –