私はFirebase
からいくつかのデータをダウンロードし、私のアプリでそれを示すアンドロイドアプリを開発しています。進行状況表示バーが表示され、非表示になったときに表示されない場合にのみ、スナックバーを表示する方法。詳細を参照してください
ProgressBar
はアクティビティの起動時に表示され、データが完全に読み込まれると非表示になります。
私はHandler
を設定しています。プログレスバーが表示されている場合は5秒後にSnackbar
が表示されます。問題は、5秒前にプログレスバーが見えなくなってもスナックバーが表示されていることです。ここで
は、私がやっていることだ:progressBarLoadingRequests.getVisibility() == View.VISIBLE
条件はプログレスバーを表示するか非表示にするかどうかを確認することが適当である:
Handler slowInternetConnection = new Handler();
slowInternetConnection.postDelayed(new Runnable() {
@Override
public void run() {
if (progressBarLoadingRequests.getVisibility() == View.VISIBLE) {
snackbar = Snackbar
.make(coordinatorLayout, "It seems there is some problem with the network. Please wait...", Snackbar.LENGTH_LONG);
snackbar.setDuration(Snackbar.LENGTH_INDEFINITE);
snackbar.show();
} else {
Toast.makeText(getBaseContext(), "not showed", Toast.LENGTH_SHORT).show();
}
}
}, 5000);
私はこの上でチェックするかどうかということを知っているしたいと思いますか?
または、私が望むものを達成するために他に何ができるか。
お知らせください。
比較が有効な場合、プログレスバーが見えなくなってもスナックバーが表示されるのはなぜですか? –
あなたのコードは私のアプリケーションの内部で使用すると動作します。問題はここでコードの外にあるものでなければなりません。あなたの 'progressBarLoadingRequests'はパブリック変数だと思います。おそらく、どこかにリセットされ、実際のプログレスバーへの参照を保持していない – user3331142