如何强制对话框的横向模式?

Posted

技术标签:

【中文标题】如何强制对话框的横向模式?【英文标题】:how to force landscape mode for dialog? 【发布时间】:2012-10-02 08:41:14 【问题描述】:

假设您的活动(强制!)处于纵向模式,您将从那里显示一个对话框,但在横向模式下(因为它包含的视图大于屏幕宽度),您将如何做到这一点?

我认为对话框的屏幕方向取决于它的托管活动/服务。

还有办法吗? (例如,强制对话框视图的默认方向超过其布局 xml 文件?)

【问题讨论】:

请再次阅读我的问题。我的活动已经处于纵向模式。我需要的是有一个对话框,从那个活动开始,但在横向模式下...... 我想你需要先把你的活动放在横向(与 xml 布局文件有什么关系?) 这就是问题所在。我活动中的布局是为纵向模式设计的,所以我无法切换。另一个想法是在 dialog-views xml 布局文件中预先定义 screenOrientation,但它不起作用。 如何在 xml 布局文件中定义 screenOrientation ? 问题解决了吗? 【参考方案1】:

如果您在DialogFragment 下使用 在对话框中创建 getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 并在对话框中解雇getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); 如果您不想重新创建活动,请添加 android:configChanges="orientation|screenSize" 您必须以其他方式处理正在重新创建的活动

【讨论】:

以上是关于如何强制对话框的横向模式?的主要内容,如果未能解决你的问题,请参考以下文章

在横向模式下键入时显示搜索建议

定向更改时的列表视图的自定义对话框(横向模式)

纵向模式下的相机横向预览

如何旋转对话框(带动画)?

BottomSheetDialogFragment 在横向模式下不显示全高

如何在 AVPlayer 中强制横向模式?