将screenOrientation设置为portrait不起作用

时间:2014-08-19 09:33:43

标签: android screen-orientation

我想以纵向模式运行我的应用,我知道这不是最佳做法,但有理由这样做。虽然我已经禁用了旋转,但它仍然可以在某些视图上旋转,但它不会在其他视图上旋转。

我的Android Manifest中有这部分代码:

 <activity
        android:name="<name>.app.MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboardHidden|keyboard|locale|orientation"
        android:screenOrientation="portrait">

我根据用户输入使用片段显示不同的容器。

这是唯一具有碎片的活动。 我在这个网站上尝试了一些解决方案。包括按代码设置纵向模式

4 个答案:

答案 0 :(得分:6)

你可以像下面这样做

在java中的rootView之后添加此行

 getActivity().setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  // programmatically

对于Ex:

View rootView = inflater.inflate(R.layout.activityxml, container, false);       
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

And also in your manifest change it 

android:configChanges="orientation|keyboardHidden" as android:configChanges="keyboardHidden"

<activity
    android:name="com.test.activity"
    android:label="@string/app_name" 
    android:screenOrientation="portrait"
    android:configChanges="keyboardHidden" >

答案 1 :(得分:0)

在super.onCreate.first代码行之前使用下面的代码。强制活动到肖像(当然是肖像的两面)

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);  

您输入的代码android:configChanges =&#34; screenSize | orientation&#34;只是强迫活动不要错过旋转的统计数据(onCreate只调用一次,如果旋转onPause将调用)

答案 2 :(得分:0)

试试这段代码

 <activity android:name="com.myActivity" android:screenOrientation="portrait"
                android:configChanges="keyboardHidden|orientation"
                >
            </activity>

答案 3 :(得分:0)

添加Android清单:

tools:ignore="LockedOrientationActivity"
android:screenOrientation="portrait">