5

このフォーラムを長い間検索した結果、次のように、ダイアログを回避してローテーション後に閉じるためのソリューションを使用することを提案する多くの回答が見つかりました。

android:configChanges="keyboardHidden|orientation"

または、最も推奨されると思われる次の方法をオーバーライドします。

protected Dialog onCreateDialog(int id)

しかし、Android リファレンス ドキュメントを調べたところ、これらのダイアログ メソッドが非推奨になっていることがわかりました。

したがって、明らかな質問は次のとおりです。

現在、デバイスのローテーション後にダイアログが閉じないようにする最善の方法は何ですか?

前もって感謝します。

4

3 に答える 3

7

これで、新しいFragmentsAPIのDialogFragmentを使用する必要があります。3.0より前のプラットフォームで使用するには、互換性パッケージを使用します。

于 2012-08-15T06:53:18.147 に答える
5

私が答えるつもりは、ダイアログのみに基づいています(まったく別のゲームであるダイアログフラグメントではありません)。

ダイアログはアクティビティの一部であるため、ローテーション中に破棄されます。ダイアログへの以前の参照は、画面上にないダイアログを指すようになり、問題を引き起こす可能性があります。

残念ながら、簡単な解決策はありません。android:configChanges="keyboardHidden|orientation"あなたと一緒に、あなた自身のために他の一連の問題を作成することになります.

その方法は、ダイアログの構成を保存して閉じ、アクティビティが再作成されるたびにダイアログを再作成することです。

于 2012-08-15T08:14:39.523 に答える
0

これを試してみてください....

onOrientationChanged(int x)
{
 dialogobject.dismissDialog();
}
于 2012-08-15T07:01:57.747 に答える