ゲームが描画される GameView というカスタム ビューがあります。GameView のオーバーレイとして機能する PausedView という子ビューもあります。ゲームが一時停止すると、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);