【问题标题】:setVisibility() doesn't refresh UI AndroidsetVisibility() 不会刷新 UI Android
【发布时间】:2013-10-08 13:36:53
【问题描述】:

我有一个带有 LinearLayout 的 SurfaceView,如果您单击 SurfaceView,它会隐藏或显示。 问题是 SurfaceView 没有刷新,所以如果 setVisibility(View.VISIBLE) 实际上不起作用。

这是我正在使用的代码:

sv.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v)
            {
                Log.d("MainActivity-onCreate-onClick-buttons",
                        buttonsVisibility.toString());
                if (buttonsVisibility)
                {
                    linearLayoutButtons.setVisibility(View.INVISIBLE);
                    buttonsVisibility = false;
                } else
                {
                    linearLayoutButtons.setVisibility(View.VISIBLE);
                    buttonsVisibility = true;
                }

            }
        });

默认buttonVisibility设置为false,我第一次点击视图时实际上是这样,所以逻辑是一致的,唯一的问题是setVisibility似乎没有效果。只有当我打开/关闭屏幕时,我才能看到布局正确显示然后正常工作。为什么我需要关闭屏幕才能刷新 UI? setVisibility后不应该自动刷新吗?

非常感谢

【问题讨论】:

    标签: android-layout refresh visibility


    【解决方案1】:

    我不知道为什么,但是如果我将按钮更改为 ImageButtons,它可以工作,但是无论我把它们放在哪里,按钮都会出现错误的“z-index”。我需要在它们上单击一次以修复“z-index”。如果我用 setVisibility(View.GONE) 更改 setVisibility(View.INVISIBLE) 一切正常。

    希望这可能对遇到同样问题的人有所帮助。

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 1970-01-01
      • 2018-09-30
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多