比如我想用SwipeRefreshLayout在界面第一次加载进来时先自动刷新一次。
private SwipeRefreshLayout mRefreshLayout;
mRefreshLayout.setRefreshing(true);
这样不起作用,显示不出加载条。
但是交给handler就可以?
private SwipeRefreshLayout mRefreshLayout;
mHandler.post(new Runnable() {
@Override
public void run() {
mRefreshLayout.setRefreshing(true);
}
});
迷茫2017-04-17 17:17:46
最初に Zhihu からの回答を再投稿します。これは、onCreate での setRefreshing の呼び出しが無効である理由を説明しています:
著者: Xiaobo
リンク: https://www.zhihu.com/question/35422150/answer/62784161
出典: Zhihu
著作権は作者に帰属します。商業的転載の場合は、著者に連絡して許可を得てください。非商業的転載の場合は、出典を明記してください。
setRefresh を呼び出した時点ではビューの初期化が完了していないため、最も簡単な方法は、post を使用してキューに参加し、気軽にデモを作成し、コードを追加することです。
リーリーsetRefreshing はアニメーションのみを表示することに注意してください。自動的に更新する場合は、onRefresh を手動で呼び出す必要があります。そうでない場合は、onRefresh のタスクの後にあります。実行が早すぎると、リフレッシュアニメーションがキャンセルされません。