相关疑难解决方法(0)

Android:旋转更改后的Dialog等恢复

旋转屏幕后如何恢复对话框等?例如,弹出一个alertDialog来告诉用户一些信息.然后用户将屏幕旋转到另一个方向.如何恢复alertDialog?任何人都可以指导我这样做吗?谢谢!

稍后附上:

我查看了android源代码并找到了这些东西:

对话框存储在mManagedDialogs,相关信息是:

mManagedDialogs = new SparseArray<ManagedDialog>();
Run Code Online (Sandbox Code Playgroud)

onSaveInstanceState 有关:

final void performSaveInstanceState(Bundle outState) {
    onSaveInstanceState(outState);
    saveManagedDialogs(outState);
}
Run Code Online (Sandbox Code Playgroud)

saveManagedDialogs,它有一些关系mManagedDialogs.

onRestoreInstanceState 有关:

final void performRestoreInstanceState(Bundle savedInstanceState) {
    onRestoreInstanceState(savedInstanceState);
    restoreManagedDialogs(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)

restoreManagedDialogs,它有一些关系mManagedDialogs.

如您所见,对于高级功能,您必须自己执行保存和恢复工作.当你有吨定制的对话框时,它可能是一个夜晚的母马.我没有尝试过复杂的对话框(输入EdiText,listView,比如说).这样,我想警告用户:在对话框中输入信息时不要旋转屏幕...或者,在显示对话框时动态锁定旋转.

感谢所有回答我的人.希望我的信息对你也有帮助.

android dialog restore rotation

7
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

dialog ×1

restore ×1

rotation ×1