0

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

4

3 回答 3

4

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

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-05-21T19:31:48.527 回答
3
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//Show dialog here
//...
//Hide dialog here
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
于 2012-09-17T10:28:02.867 回答
0

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

于 2012-09-17T10:27:57.953 回答