当前位置: 首页 > 知识库问答 >
问题:

从其他活动返回后,SurfaceView 为黑色

邹山
2023-03-14

我已经为Android制作了一个TicTacToe游戏,为了开始一个新游戏,我调用开始ActVityForResault()让用户在新的Act

但问题来了:整个SurfaceView只是一个黑色区域,直到我点击某个地方,然后它就会像它应该的那样运行:onTouchEvent()方法被调用,游戏变得可见。

我有什么办法摆脱黑屏吗?我已经尝试在onResume()/onPause期间将LinearLayout和SurfaceView设置为可见/不可见。而invalidate()postInvalidate(()也不起作用。

我发现如果表面绘制两次,它似乎显示正确,所以我通过布尔标志在 draw() 内部调用 postInvalidate()。

共有1个答案

解晟
2023-03-14

如果没有任何代码或更详细的信息,这很难回答,但您应该在onPause()/onResume()onSurfaceDestroyed()/onSurfaceCreated()方法中开始/停止渲染曲面视图。因此,基本上,您必须在活动生命周期中正确处理表面视图。

这是非常具体地处理这个主题(活动生命周期表面视图)。

作为快速修复,您可以尝试在onResumeonSurfaceCreated()中手动调用onTouchEvent()。

 类似资料:
  • 我研究了其他解决方案,但它们使用的是扩展SurfaceView并实现Runnable的自定义类。我希望使用默认的SurfaceView类。有什么办法可以解决这个问题吗?

  • 我有3个活动A、B和C。A导致B,B导致C。我希望能够在A和B之间来回移动,但我希望在C开始后完成A和B。我知道如何在通过意图启动C时关闭B,但在启动C时如何关闭A?

  • 在我的应用程序中,当我从后台回来时,我的活动会自动接近,并且它总是显示以前的活动。示例:我用活动A启动应用程序 }

  • 问题内容: 有人知道如何从其他活动中关闭一个活动吗?例如:我有3个活动(活动A,B和C),并且可以从活动C中关闭活动A。我的活动结构是活动A->活动B->活动C如何从中关闭活动A活动C? 我曾尝试此代码: 但是该代码只能关闭活动B的活动A,而不能直接关闭活动C的活动A。 有谁知道直接从其他活动关闭活动?谢谢.. 问题答案:

  • 我有一个活动A,里面有一些编辑文本和一个按钮。在用户填充活动A后,单击,然后调用活动B()。用户点击列表并返回活动A。我的问题是当我返回活动A时,所有的编辑文本都为空。如何保存值。Tyvm

  • 当我创建时,我需要从另一个活动中删除一个片段,而不是创建它的活动: 然后我可以从片段中访问另一个活动,假设片段中有一个按钮可以打开另一个活动,现在,停留在该活动中我想删除启动该活动的片段,我得到该片段的参考号通过意图。所以我尝试: 但它给了我一个nullPointerException, 03-07 22:42:33.270 30993-30993/河马。rggmiranda。hiposleep