setVisibility 有時不能及時顯示
這種情況一般是在UI線程之后跟了比較耗時的任務,
需要開啟子線程,在子線程中執(zhí)行耗時任務,方能使view 的 setVisibility 正常顯示隱藏
主線中代碼執(zhí)行
public void mainThread(){
view.setVisibility(View.VISIBLE);
startThread();
}
子線程中代碼
Thread thread = new Thread(new Runnable(){
public void run(){
///耗時任務
dealHaoshiTask();
//耗時任務執(zhí)行完 發(fā)送給handler
Message message = new Message();
message.obj = "隱藏";
message.what = 1;
mHandler.sendMessage(message);
}
});
thread.start();
handler中代碼
private Handler mHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(@NonNull Message message) {
switch (message.what) {
case 1:
//handler中隱藏view
loadingView.setVisibility(View.GONE);
break;
default:
break;
}
return false;
}
});
耗時任務
public void dealHaoshiTask(){
}