Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 视图仅在1个设备上的按钮和文本视图上绘制,而不是在其他设备上绘制_Android_Android View - Fatal编程技术网

Android 视图仅在1个设备上的按钮和文本视图上绘制,而不是在其他设备上绘制

Android 视图仅在1个设备上的按钮和文本视图上绘制,而不是在其他设备上绘制,android,android-view,Android,Android View,我有一个名为GameView的自定义视图,用于绘制游戏。还有一个名为PausedView的子视图,用作GameView的覆盖。游戏暂停时,PausedView设置为visible,屏幕将显示50%不透明度的黑色覆盖和4个按钮 我的问题是,在我的LG Optimus S(Android 2.3.3)上,这些按钮没有出现。它们就在那里,你可以点击,但是它们没有显示出来。此外,黑色覆盖层仅出现在GameView中的按钮和文本视图上。如果我离开,然后回到活动,一切看起来都很正常 这个错误不会发生在我的摩

我有一个名为GameView的自定义视图,用于绘制游戏。还有一个名为PausedView的子视图,用作GameView的覆盖。游戏暂停时,PausedView设置为visible,屏幕将显示50%不透明度的黑色覆盖和4个按钮

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

这个错误不会发生在我的摩托罗拉Xoom(Android 3.2.1)或我的摩托罗拉Droid(Android 2.2.3)上。直到最近,我的擎天柱上才出现这种情况(我想大概是在我得到服务更新的时候)

我所说内容的屏幕截图:

我尝试在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);

是的,我想我也遇到过类似的情况。 在我的应用程序中,我有一个带有图像源和覆盖的框架视图。在我的Android 4.0.3设备上,它看起来不错,但在2.3.x设备(或更早版本)上,当设置为可见时,它们不会出现


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

谢谢你的帮助。我想这样行得通,但我有点麻烦。是否检查我的updatedoes setContentView()是否在其他线程中运行?看起来gameView drawables在我的游戏循环的前几次迭代之后才显示出来。我正试图找出一种方法,确保在将视图设置为invisibleNo之前,布局完全膨胀。只要布局膨胀,setContentView(…)就不会在单独的线程和块中运行。您应该能够在setContentView(…)之后直接设置可见性(View.GONE)。