视图仅在1个设备上绘制按钮和textView,但不包括其他设备

时间:2012-07-10 07:47:53

标签: android android-view

我有一个名为GameView的自定义视图,用于绘制游戏。还有一个名为PausedView的子视图,可用作GameView的叠加层。当游戏暂停时,PausedView设置为可见,屏幕获得50%不透明度黑色覆盖和4个按钮。

我的问题是在我的LG Optimus S(Android 2.3.3)上没有出现这些按钮。他们在那里,你可以点击然后,但他们没有显示。此外,黑色叠加层仅出现在GameView中的按钮和文本视图上。如果我离开,然后回到活动,这一切看起来都很正常。

我的Motorola Xoom(Android 3.2.1)或我的Motorola 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);

1 个答案:

答案 0 :(得分:0)

是的,我想我遇到过类似的事情。 在我的应用程序中,我有一个带有图像源和叠加层的FrameView。在我的Android 4.0.3设备上它看起来很好,但是对于2.3.x设备(或更早版本),它们在设置为可见时不会出现。

到目前为止,我唯一的解决方案是不要在XML文件中设置不可见的视图,并在布局膨胀后立即将它们变为不可见(或消失)。在那之后,一切似乎都运转正常。