Android 在对话框视图上固定屏幕方向

Android 在对话框视图上固定屏幕方向,android,screen-orientation,customdialog,Android,Screen Orientation,Customdialog,我正在活动中使用自定义对话框。我只想设置屏幕方向,如果对话框显示在其他地方,屏幕方向可以更改为纵向到横向,反之亦然。是否有任何方法可以专门在java代码中修复此类特定情况的方向。使用android:configChanges=“orientation”则当方向更改时,android不会重新创建活动。如果不想取消对话框,只需使用Activity.showDialog()方法即可。如果您仍然想使用android:configChanges=“orientation”,那么您必须在Activity.o

我正在活动中使用自定义对话框。我只想设置屏幕方向,如果对话框显示在其他地方,屏幕方向可以更改为纵向到横向,反之亦然。是否有任何方法可以专门在java代码中修复此类特定情况的方向。

使用
android:configChanges=“orientation”
则当方向更改时,android不会重新创建活动。如果不想取消对话框,只需使用
Activity.showDialog()
方法即可。如果您仍然想使用android:configChanges=“orientation”,那么您必须在
Activity.onConfigurationChanged()
方法中手动更改可绘图项。

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

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//Show dialog here
//...
//Hide dialog here
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
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年以来,我就没有写过Android代码。