我有一个问题。我有一个应用程序,它在manifest.xml 中设置了固定方向(纵向)。
android:screenOrientation="portrait"
但我确实想更改
Dialog
的方向,它是我在片段之一中以编程方式创建的。问题是,由于我的清单声明,super
方法onConfigurationChanged(Configuration newConfig)
从未被调用过。
是否可以检测到手机已被转动并更改对话框的方向(而不像平常那样破坏/重新创建所有内容)?
编辑:
“
Activity
和 Fragments
应保持纵向模式,Dialog
应检测变化并确定方向”
希望这个问题是可以理解的;)
谢谢!
我认为一个可行的解决方案是删除 android:screenOrientation 标签,然后重写 onConfigurationChanged() 方法来执行您需要的操作。
我们必须在从服务启动的全屏对话框中执行此操作。
override fun onStart() {
window?.attributes?.screenOrientation = SCREEN_ORIENTATION_PORTRAIT
super.onStart()
}
而且效果很好