Android屏幕方向的改变在平板电脑上有不同的行为
我有以下活动:Android屏幕方向的改变在平板电脑上有不同的行为,android,screen,orientation,tablet,Android,Screen,Orientation,Tablet,我有以下活动: android:screenOrientation="portrait" 和代码: if(blah blah blah) this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) 在活动onCreate中。 1.在智能手机上进行测试时,“setRequestedOrientation”会导致销毁活动,并以所需的屏幕方向再次创建。 2.在平板电脑设备上测试时,此代码仅运行一次活动。在“
android:screenOrientation="portrait"
和代码:
if(blah blah blah)
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
在活动onCreate中。
1.在智能手机上进行测试时,“setRequestedOrientation”会导致销毁活动,并以所需的屏幕方向再次创建。
2.在平板电脑设备上测试时,此代码仅运行一次活动。在“setRequestedOrientation”之后,它将继续执行,而不会再次销毁和创建活动。在onCreate中启动没有调试程序或没有断点的代码时会发生这种情况。如果我在onCreate函数中停止,我会在日志中看到,再次销毁和onCreate。
如何利用平板电脑捕捉特定情况
更新:
-如果关闭“方向锁定”,平板电脑会出现问题。若“方向锁定”已启用,则该程序的工作方式与智能手机中的相同
更新2:
-是否可以将首选屏幕方向设置为整个应用程序。因此,当活动开始了解所需的方向时。这将不需要调用“setScreenOrientation”并避免第二次创建活动。您可以设置
<activity ActivityName = "test_activity"
android:configChanges="orientation">
</activity>
在android清单文件中。它将不允许在方向更改时重新启动活动,但OnConfiguration更改将被称为normaly。
稍后,您可以在OnConfiguration Change中获取DisplayOrientation并设置所需内容。否。。无法为整个应用程序设置首选屏幕方向。。。相反,您应该只在各自的活动中调用setScreenOrientation 在花了一整天的时间处理这个问题后,我在我的应用程序中做了以下更改: 1.每个活动/没有第一个/都声明为android:screenOrientation=“behind”。 2.在第一个活动中,我使用用户选择的模式/从我的菜单设置首选屏幕方向。 3.只有当用户在我的菜单选项中更改了模式时,我才调用setRequestedOrientation
这导致活动只创建一次。最后:)谢谢。我知道这条路。谷歌强烈建议不要这样做。