我有一个应用程序,当我打开应用程序时有一些选项卡和登录对话框。我现在的问题是我希望在手机旋转时更改布局,但是我注意到活动被破坏然后重新创建,这导致登录弹出再次发生。
我在清单中尝试过“KeyBoardHidden | orientation”,但是当我旋转手机时,我无法更改布局。
有没有办法在运行时强制刷新Android平台上的视图?
答案 0 :(得分:0)
您应该能够使用KeyBoardHidden | orientation并使布局自动旋转。
您需要在创建Toast的方法中调用super.onConfigurationChanged。 然后,活动将采用当前布局并旋转它。这意味着如果在layout-land和默认布局文件夹中有两个不同的布局文件,这将无法给出正确的答案。
如果您有两个不同的布局文件,您的活动应该自行销毁并在onCreate中从头开始重新创建布局。为此,您应该覆盖onSaveInstanceState。在onSaveInstanceState中,您将获得一个Bundle,您可以使用该Bundle存储一个布尔值,该布尔值确定对话框是否呈现给用户。在重新创建活动之后,该bundel将被传递给您的onCreate方法。然后,您将检查提供给onCreate的bundle是否为null,如果不是,您可以提取布尔值并检查对话框是否已显示。