VIEW.SETVISIBILITY

setVisibility 有时不能及时显示

这种情况一般是在UI线程之后跟了比较耗时的任务,
需要开启子线程,在子线程中执行耗时任务,方能使view 的 setVisibility 正常显示隐藏

主线中代码执行

public void mainThread(){
view.setVisibility(View.VISIBLE);
  startThread();
}

子线程中代码

Thread thread = new Thread(new Runnable(){
public void run(){
///耗时任务
  dealHaoshiTask();

//耗时任务执行完 发送给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(){

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容