繁体   English   中英

在 Android Studio 中不会立即设置可见性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM