1

我有一个带有 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 之后自动刷新吗?

非常感谢

4

1 回答 1

0

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

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

于 2013-10-02T09:24:55.770 回答