Android layout setVisibility()不';刷新用户界面

Android layout setVisibility()不';刷新用户界面,android-layout,refresh,visibility,Android Layout,Refresh,Visibility,我有一个带有线性布局的SurfaceView,如果单击SurfaceView,它会隐藏或显示。 问题是SurfaceView没有刷新,因此如果setVisibility(View.VISIBLE)实际上不起作用 这是我正在使用的代码: sv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {

我有一个带有线性布局的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之后自动刷新吗


非常感谢

我不知道为什么,但如果我将按钮更改为ImageButtons,它会工作,但按钮在我放置的任何位置都会显示错误的“z索引”。我需要点击它们一次来修复“z索引”。如果我用setVisibility(View.GONE)更改setVisibility(View.INVISIBLE),一切正常

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