Java 能见度不高';不要在Android Studio中立即设置
在Java中设置ImageView的可见性时,只显示结果,而不显示视图的中间状态。结果很好,但在开始和结束之间,进度条不可见 我已经尝试在UI线程上运行代码(从代码中可以看出)。这不会改变任何事情 Reconnect是一个ImageButton,单击它时应隐藏ImageView连接状态,显示名为Connection的进度条,sleep 1s,然后再次隐藏进度条/显示ImageViewJava 能见度不高';不要在Android Studio中立即设置,java,android,visibility,Java,Android,Visibility,在Java中设置ImageView的可见性时,只显示结果,而不显示视图的中间状态。结果很好,但在开始和结束之间,进度条不可见 我已经尝试在UI线程上运行代码(从代码中可以看出)。这不会改变任何事情 Reconnect是一个ImageButton,单击它时应隐藏ImageView连接状态,显示名为Connection的进度条,sleep 1s,然后再次隐藏进度条/显示ImageView Reconnect.setOnClickListener(new View.OnClickListener()
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
以在以后执行,而不阻止线程执行其他内容。所有视图
类都附带一个现成的处理程序
,因此您只需在其中一个视图
上调用postDelayed()