android – 以编程方式删除方向限制

在我的清单中,我设置了一个仅限于纵向导向的活动.但是我需要删除这个限制条件.那么,如何以编程方式实现取消方向限制?

upd:我现在的设置是:

<activity
        android:name=".activity.MainActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar"
        android:screenOrientation="portrait"
        android:configChanges="orientation">


 /**
 * Defines whether the device being used is a tablet and if so adds horizontal orientation option.
 */
     protected void _updateScreenOrientationModes(){
         if(((MyApplication) getApplication())._isTablet == true)
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
         }

解决方法

无论您是否在您的清单中设置了android:screenOrientation,您可以使用 Activity.setRequestedOrientation()以编程方式设置方向.

实质上,“消除限制”是由…完成的

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

之后,当物理设备方向改变时,活动将显示改变屏幕方向的默认行为.

但是,您可能希望在同一时间实际匹配当前的物理设备方向.我没有尝试过,但是我很确定,如果你所做的一切都是以上的,那么如果设备实际上处于横向,那么你将保持在纵向模式,直到你移动设备画像回到景观.

我会做的是确保在您的清单中设置android:configChanges =“orientation”,并覆盖Activity.onConfigurationChanged(),根据您的条件,您可以在其中执行方向更改或缓存方向.然后每当你的情况发生变化,你将有当前的身体方向方便,所以你可以在那个时候改变它,如果必要的话.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...