Android:如果方向是锁定的,还可以检测屏幕方向的变化
我有一个带有一个活动的Android应用程序和一个带有多个片段的自定义ViewPager。我的整个活动都锁定在纵向中,但现在我需要在特定片段中检测设备何时处于横向中,并启动另一个锁定在横向中的活动。在这个新活动中,当用户将设备放入纵向时,我将关闭它并返回纵向活动。 这是AndroidManifest.xml代码:Android:如果方向是锁定的,还可以检测屏幕方向的变化,android,landscape-portrait,Android,Landscape Portrait,我有一个带有一个活动的Android应用程序和一个带有多个片段的自定义ViewPager。我的整个活动都锁定在纵向中,但现在我需要在特定片段中检测设备何时处于横向中,并启动另一个锁定在横向中的活动。在这个新活动中,当用户将设备放入纵向时,我将关闭它并返回纵向活动。 这是AndroidManifest.xml代码: <activity android:name="com.mypackage.MainActivity" android:configChange
<activity
android:name="com.mypackage.MainActivity"
android:configChanges="orientation"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light" >
</activity>
现在我注意到,onConfigurationChanges从未使用此清单配置调用,但仅当我删除时才会调用
android:screenOrientation="portrait"
有没有一种方法可以将主要活动锁定在纵向,并拦截横向
现在我注意到OnConfiguration Changes()从未被调用
为什么这让你如此惊讶?您明确地禁用了方向更改,所以调用此方法没有意义。请注意,方向指的是屏幕方向,而不是设备的方向
当设备处于横向时,启动另一个锁定在横向的活动
您要么吃蛋糕,要么保留蛋糕,这样您要么强制执行固定方向,要么调用onConfigurationChanges()
启动另一个已锁定的活动
为什么不为同一活动单独设置布局文件?切换将由框架自动处理,因此不需要特殊代码-只需将文件保存在正确命名的文件夹中(请参阅文档:)因为我的活动中有一个ViewPager,它只用于纵向工作,因为我只需要在用户处于某个特定片段时切换纵向,所以看起来您的设计不正确,这样的ViewPager应该只在纵向中使用。但它不需要知道方向,因为这不应该是它的任务
android:screenOrientation="portrait"