在过去的几个小时里,我一直在做一些研究,以及一些试验和错误,但是我无法为这个问题找到一个完全有效的解决方案。我只想强制我的 android 应用程序保持纵向模式,除非屏幕尺寸足够大(平板电脑),这将迫使应用程序处于横向模式。
到目前为止我已经尝试过:
<activity android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden">
也:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
在我的 onCreate 和 onResume 中。
第一个示例确实有效,但是如果它是平板电脑,这将不允许我检查屏幕尺寸和强制横向模式。此外,如果我在执行 asynctask 时将手机置于横向模式,则应用程序将在任务完成后进入横向模式,然后只要我留在屏幕上,我就可以再次在纵向和横向之间切换相同的活动。
所以,我不确定处理这个问题的正确方法是什么?如果我使用第二个示例(使用更多代码允许我检查屏幕大小,然后根据大小选择布局)只要我在活动中就可以工作。但是,如果我在开始活动时将手机保持在横向模式,那么一切都会崩溃(所以看起来代码一开始就无效)。
任何可能完全没有任何“错误”的建议,现在就是这种情况,我们将不胜感激!