我试过以下方法:
Activity a = getActivity();
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Thread.sleep(2000);
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Thread.sleep(2000);
在安卓模拟器上。但它与按 Ctrl+F11 手动旋转屏幕的方式并不完全相同。
那么以编程方式更改方向的正确方法是什么?
最佳答案
这应该是正确的做法。这是你的测试失败了。
首先,不要使用Thread.sleep
,它会卡住你的整个应用程序并阻止任何事情发生(包括方向改变)。尝试使用 Handler反而。
其次,更改很可能不会立即发生,而只会在您离开 onCreate()
(可能还有其他几个 lifecycle methods)之后才会发生。
第三,如果你改变方向,你的 Activity 将是 destroyed and recreated .所以你不能真正在单个 Activity 实例中来回切换。
关于android - 如何在 Android 中以编程方式更改方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11298570/