2

私のアクティビティ A はゲームで、いくつかのバックグラウンド操作を行います。コンテキスト メニューのボタンを押すと、「小さなウィンドウ/ダイアログ/サブアクティビティ」(B と呼びましょう) がアクティビティ A の上に表示され、それらのバックグラウンド操作に関するデータが表示されます。しかし、アクティビティ A とのやり取り (ゲームのプレイ) を続けるためには、アクティビティ A に集中し続ける必要があります。

要はゲーム中にBのデータ表示を見れるようにしたい。

これを実装する方法がよくわかりません。ドキュメントを読んだ後、次の結論があります。

  • フォーカスがあるため、ダイアログを使用できないことはわかっています。これを回避することは可能ですか?
  • ダイアログテーマでサブアクティビティを使用することは、魅力的に見える別のオプションです...しかし、サブアクティビティに焦点があると思います。同上。
  • 私の最後のオプションは、私のデータを含む LinearLayout をメインのレイアウトに追加して、画面を「共有/分割」することです。きれいではありませんが、少なくともこれが可能であることはわかっています。このアプローチで気に入らないのは、画面の幅と高さを使用することです。

助言がありますか?ソリューション?

PS:私の質問に非常に関連するこのスレッドをいくつか見つけました:

4

2 に答える 2

0

アクティビティの一部であるFrameLayoutを使用してみませんか?このビューのzインデックスが高いことを確認してください(XMLレイアウトの最後に宣言するか、実行時に作成してください)。そうすれば、アクティビティを離れることはありません。

于 2011-11-04T11:10:52.360 に答える
0

style で Activity を作成しますTheme.Dialog。これはダイアログのように見える通常のアクティビティですが、モードレスでイベントを受け入れます。

追加のキャッチは、設定WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODALとリセットにありWindowManager.LayoutParams.FLAG_DIM_BEHINDます。

完全な例については、この回答を参照してください:時間指定モードレス ダイアログ

于 2011-11-03T18:39:56.443 に答える