【问题标题】:Fix orientation of screen on Dialog view修复对话框视图上的屏幕方向
【发布时间】:2012-09-17 10:24:58
【问题描述】:

我在我的活动中使用自定义对话框。只有当对话框显示在其他地方时,我才想设置屏幕方向,屏幕方向可以从纵向变为横向,反之亦然。有没有办法专门在java代码中修复这种特殊情况的方向。

【问题讨论】:

    标签: android screen-orientation customdialog


    【解决方案1】:

    我们必须在从服务启动的全屏对话框中执行此操作。

    final WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
    params.copyFrom(window.getAttributes());
    params.width = WindowManager.LayoutParams.MATCH_PARENT;
    params.height = WindowManager.LayoutParams.MATCH_PARENT;
    params.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
    
    window.setAttributes(params);
    

    【讨论】:

    • 您尝试接受的答案了吗?自 2014 年以来,我没有编写过 Android 代码。
    【解决方案2】:
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    //Show dialog here
    //...
    //Hide dialog here
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
    

    【讨论】:

      【解决方案3】:

      使用android:configChanges="orientation",那么当方向改变时,Android 不会重新创建活动。如果您不想关闭对话框,只需使用Activity.showDialog() 方法。如果您仍然想使用android:configChanges="orientation",那么您必须在Activity.onConfigurationChanged() 方法中手动更改drawable。

      【讨论】:

        猜你喜欢
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 2022-06-14
        • 1970-01-01
        • 2012-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多