在对话框视图上修复屏幕方向

问题描述 投票:0回答:3

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

android screen-orientation customdialog
3个回答
2
投票
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//Show dialog here
//...
//Hide dialog here
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

3
投票

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

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);

0
投票

使用android:configChanges="orientation"然后Android在更改方向时不会重新创建活动。如果您不希望解除对话框,请使用Activity.showDialog()方法。如果你仍然想使用android:configChanges="orientation",那么你必须在Activity.onConfigurationChanged()方法中手动更改drawables。

© www.soinside.com 2019 - 2024. All rights reserved.