【发布时间】:2012-09-17 10:24:58
【问题描述】:
我在我的活动中使用自定义对话框。只有当对话框显示在其他地方时,我才想设置屏幕方向,屏幕方向可以从纵向变为横向,反之亦然。有没有办法专门在java代码中修复这种特殊情况的方向。
【问题讨论】:
标签: android screen-orientation customdialog
我在我的活动中使用自定义对话框。只有当对话框显示在其他地方时,我才想设置屏幕方向,屏幕方向可以从纵向变为横向,反之亦然。有没有办法专门在java代码中修复这种特殊情况的方向。
【问题讨论】:
标签: android screen-orientation customdialog
我们必须在从服务启动的全屏对话框中执行此操作。
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);
【讨论】:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//Show dialog here
//...
//Hide dialog here
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
【讨论】:
使用android:configChanges="orientation",那么当方向改变时,Android 不会重新创建活动。如果您不想关闭对话框,只需使用Activity.showDialog() 方法。如果您仍然想使用android:configChanges="orientation",那么您必须在Activity.onConfigurationChanged() 方法中手动更改drawable。
【讨论】: