[英]Visibility isn't set immediately in Android Studio
Java中设置ImageView的可见性时,只显示结果,不显示View的中间状态。 结果很好,但在开始和结束之间,进度条不可见。
我已经尝试在 UI 线程上运行代码(如代码中所示)。 这不会改变任何事情。
Reconnect 是一个 ImageButton,当它被点击时应该隐藏 ImageView ConnectionStatus,显示一个名为 Connecting 的 ProgressBar,sleep 1s 然后再次隐藏 Progressbard/显示 ImageView。
Reconnect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
runOnUiThread(new Runnable() {
@Override
public void run() {
ConnectionStatus.setVisibility(View.INVISIBLE);
Connecting.setVisibility(View.VISIBLE);
try {
Thread.sleep(1000);
}
catch(InterruptedException e){}
Connecting.setVisibility(View.INVISIBLE);
ConnectionStatus.setImageResource(R.drawable.ic_baseline_check_24px);
ConnectionStatus.setVisibility(View.VISIBLE);
}
});
}
});
Thread.sleep()
阻塞当前线程。 您的 UI 线程无法处理任何事件,例如在可见性更改后重绘视图。
您可以使用Handler
postDelayed()
发布Runnable
以供稍后执行,而不会阻止线程执行其他内容。 所有View
类都带有一个开箱即用的Handler
,因此您只需在其中一个View
上调用postDelayed()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.