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