我有一个名为 GameView 的自定义视图,用于绘制我的游戏。还有一个名为 PausedView 的子视图用作 GameView 的叠加层。当游戏暂停时,PausedView 设置为可见,屏幕获得 50% 不透明度的黑色覆盖层和 4 个按钮。
我的问题是在我的 LG Optimus S (Android 2.3.3) 上没有出现这些按钮。他们在那里,你可以点击然后,但他们没有显示出来。此外,黑色覆盖仅出现在 GameView 中的按钮和文本视图上。如果我离开,然后回到活动,一切看起来都很正常。
我的摩托罗拉 Xoom (Android 3.2.1) 或摩托罗拉 Droid (Android 2.2.3) 上不会出现此错误。直到最近我的 Optimus 上也没有发生这种情况(我想大约是在我获得服务更新的时候)。
我正在谈论的屏幕截图:
http://postimage.org/image/qjhiho3ed/
http://postimage.org/image/9k8k2es6t/
我尝试在 GameView 和 PausedView 上调用 postInvalidate(),但没有帮助。
有没有人遇到过这样的事情?
更新:我尝试从 XML 中删除不可见性设置并使用此代码,但它仍然无法正常工作。在创建视图很久之后,我可以通过在视图上调用 setVisibility 来纠正它,但是在创建过程中我找不到调用这些函数的正确位置。
// Use XML layout
setContentView(R.layout.main);
// define the views of this activity
gameView = (GameView)findViewById(R.id.gameView);
pausedView = findViewById(R.id.pausedView);
victoryView = findViewById(R.id.victory);
pausedView.setVisibility(View.INVISIBLE);
victoryView.setVisibility(View.INVISIBLE);
更新:
通过使用修复它
pausedView.setVisibility(View.GONE);
victoryView.setVisibility(View.GONE);