【问题标题】:How to keep dialog showing on orientation change? [duplicate]如何在方向更改时保持对话框显示? [复制]
【发布时间】:2014-08-18 14:15:53
【问题描述】:

我有一个活动可以让列表视图膨胀。在列表项上单击打开一个对话框(它在相应的列表适配器中处理。)在方向更改时,显示对话框(如果有)消失(如预期的那样。)我想要的是显示对话框在方向更改时不关闭,并且我不知道如何干净地处理它。

【问题讨论】:

  • 您无法处理,除非您想放弃对应用程序的方向更改支持。

标签: android android-dialog android-orientation


【解决方案1】:

当您旋转手机时,您的活动实际上会被销毁并重新创建。这包括您的对话。是的,这很可能是历史上最愚蠢的设计决定,但我们坚持下去。有两种方法可以解决:

1) 关闭这个“有用的”功能。如果您没有横向和纵向的不同布局,我建议您这样做。将 android:configChange="orientation|resize" 添加到清单中的活动中。

2) 实现 onSaveInstanceState/onRestoreInstanceState 并有一个变量来说明您是否需要重新创建和重新启动对话框。

【讨论】:

    【解决方案2】:

    您可以在 androidManifest.xml 文件中禁用方向更改

    <activity
            android:name="com.example.deneme"
            android:label="@string/app_name"
            android:launchMode="singleTop"
            *************android:screenOrientation="landscape" >*******************
    </activity>
    

    你可以在显示对话框之前完成

    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    

    对话框显示后

    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    

    【讨论】:

      猜你喜欢
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      相关资源
      最近更新 更多