群里有小伙伴跟我提出一个需求,需要设置AlbumCameraRecorder库为横向显示。
那么在我弄完兼容横向的显示后突然发现一个很奇怪的问题。
通过动态配置setRequestedOrientation设置该库的Activity为横向的时候,但是运行时会先显示为竖向,然后才调整为横向。
后来排除各种问题后,在https://stackoverflow.com/questions/42936007/activity-orientation-changes-automatically-on-android找到发生同样的问题小伙伴。
他上传了具体错误的Demohttps://github.com/giacmarangoni/Android-Orientation-Test
后来总结出解决方式:
在需要添加setRequestedOrientation动态配置的Activity中,AndroidManifest.xml给对应的Activity添加android:screenOrientation="locked"配置,这样就能杜绝这种问题。
那为什么鲜少人发现这个问题呢,因为要出现这个问题必须都满足以下条件:
- Activity必须使用setRequestedOrientation控制横竖向
- 启动该Activity的上一个Activity必须是AndroidManifest.xml配置
- 启动该Activity的上一个Activity必须是同个方向,比如上一个Activity是横向,然后启动的Activity通过setRequestedOrientation调整成横向
网友评论