【问题标题】:How to use layout-land and android:configChanges=orientation|screenSize together in application?如何在应用程序中同时使用 layout-land 和 android:configChanges=orientation|screenSize?
【发布时间】:2016-09-13 02:44:31
【问题描述】:

我的应用程序在更改设备方向时需要布局。 我使用对话框输入名称,但是当方向改变时,对话框消失了。

那就是在清单文件中使用 android:configChanges=orientation|screenSize

现在的问题是 android:configChanges 属性不适用于 layout-land,因为它会阻止重新启动活动。

我的应用程序需要 layout-land 和 android:configChanges=orientation|screenSize 协同工作。

请帮帮我。

提前致谢。

【问题讨论】:

    标签: android android-layout android-manifest


    【解决方案1】:

    您不需要android:configChanges=orientation|screenSize 来解决在旋转时不会重新出现的对话框的问题。确保使用DialogFragment 而不是简单的AlertDialog,当设备旋转时DialogFragment 应该会自动重新出现。

    【讨论】:

    • 我使用Dialog 在应用程序中创建自定义对话框。我可以在活动和片段中都制作自定义对话框片段吗? @Egor
    • 只需覆盖 DialogFragment 中的 onCreateDialog() 并返回您的自定义对话框实现
    • 我应该为 DialogFragment android.support.v4.appandroid.app 导入哪个包? @Egor
    • 我建议使用支持库中的那个。
    • 当然,不客气。请不要忘记接受答案。谢谢!
    【解决方案2】:

    如果您使用android:configChanges=orientation|screenSize 处理配置更改,Android 将不会重新启动应用程序。所以那个 laout-land 将不适用。为此,您必须重写该方法

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }
    

    一旦方向改变,这个回调将被调用,然后膨胀布局土地布局xml并添加更新自定义对话框的内容视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      相关资源
      最近更新 更多