android - 确保屏幕方向固定为纵向且永不更改

标签 android android-activity orientation

我希望我的 Android 应用仅实例化一次主屏幕 Activity 。我正在适本地管理后台堆栈以实现此目的,但刚刚在应用程序启动时发现了方向问题。

从视觉上看,这种方向变化只会在模拟器上显示出来。 (可能运行得太快而无法在设备上观察到)。

这是发生了什么::-->

activity.onCreate()
activity.onDestroy()
activity.onCreate()

这个序列是有道理的,是由方向的变化引起的。对我来说没有意义的是它发生了,因为我做了以下事情来防止方向改变::-->

AndroidManifest.xml 包含

android:screenOrientation="portrait"

对于我所有的 Activity 和主屏幕 Activity 的 onCreate() 方法,我正在调用

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

那么为什么我会改变方向?

最佳答案

在您的 list 文件中添加 android:screenOrientation="portrait",您可以像这样声明您的 Activity

<activity android:name=".yourActivity"
          ....
          android:screenOrientation="portrait"/>

如果你想使用java代码 尝试

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

在您为 onCreate() 中的 Activity setContentView 之前

参见 here

关于android - 确保屏幕方向固定为纵向且永不更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12742364/

相关文章:

android - DialogFragment - 屏幕旋转后保留监听器

Android + Facebook + onComplete() 方法的 'response' 参数

android - 在 android : activity vs fragment 中使用底部导航的最佳实践

Android 阻止保存状态

IOS XIB Storyboard启动屏幕文件显示内部图像的错误方向

java - 使用终端的问题

android - Android 中的屏幕录像机以编程方式,而不是屏幕截图

android - TextView:删除顶部和底部的间距和填充

iPhone 纵向导航栏高度仍然较短

没有 Intent 过滤器的Android BroadcastReceiver