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