【发布时间】:2012-01-05 02:30:05
【问题描述】:
我需要检测我的应用程序中的方向变化,但我不希望我的布局从纵向更改为横向。
目前我正在使用OrientationEventListener 但是检测方向角度是不够的。我想检测用户从纵向变为横向或反之亦然,这不仅仅是检测方向角是 90 还是 270。
我想做与 Android 相同的检测来改变活动的方向。我尝试覆盖 onConfigurationChanged 并检查方向是否为横向/纵向,但这仍然会将我的活动布局更改为横向。
有没有办法使用 onConfigurationChanged 但强制布局保持纵向?
是否有另一种方法可以在不使用OrientationEventListener 的情况下检测方向变化。最终我可以实现自己的方向改变算法,对此有什么想法吗?它必须比if(90-THRESHOLD <= orientation <= 90+THRESHOLD) 更复杂,我想检测用户是否进行了完整的移动Portrait->Landscape 或Landscape->Portrait。
感谢您的帮助,
菲利普
【问题讨论】:
-
哎呀,对不起,脑子里放了你真正需要的东西。据我所知,您不能使用
onConfigurationChanged(),除非您实际上允许更改配置(这意味着在这种情况下视图必须旋转)。在事件被分派到窗口系统之前没有办法拦截它。
标签: android android-layout screen-orientation