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

时间:2012-09-17 10:24:59

标签: android screen-orientation customdialog

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

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:2)

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//Show dialog here
//...
//Hide dialog here
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

答案 2 :(得分:0)

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