myRefreshLayout.setRefreshing(false)を呼び出すと、リフレッシュアニメーションが終了することに気づきました...しかし、停止するだけではなく、現在の回転を終了し、オフスクリーンでアニメーション化されます。SwipeRefreshLayoutアニメーションなしでリフレッシュを停止します。
特定の状況でそれを回避する手段はありますか?私はちょうどそれがすぐに消えるようにしています。
ありがとうございます!
myRefreshLayout.setRefreshing(false)を呼び出すと、リフレッシュアニメーションが終了することに気づきました...しかし、停止するだけではなく、現在の回転を終了し、オフスクリーンでアニメーション化されます。SwipeRefreshLayoutアニメーションなしでリフレッシュを停止します。
特定の状況でそれを回避する手段はありますか?私はちょうどそれがすぐに消えるようにしています。
ありがとうございます!
はこれを試してみてください:
int cnt = swiperefresh.getChildCount();
for(int i=0; i<cnt; i++) {
View ch = swiperefresh.getChildAt(i);
if(ch.getClass().getSimpleName().equals("CircleImageView")) {
ch.clearAnimation();
ch.setVisibility(View.GONE);
swiperefresh.setRefreshing(false);
ch.clearAnimation();
break;
}
}
を私はエレガントな方法を発見しました。 SwipeRefreshLayout
にはreset()
メソッドがあり、アニメーションをキャンセルし、アニメーションなしで進行状況ドロアブルを直ちに非表示にします。残念ながら、このメソッドはパッケージプライベートです。しかし、setEnabled(false)
の間に呼び出されるので、次のように使用できます。
swipeRefreshLayout.setEnabled(false)
swipeRefreshLayout.setEnabled(true)