Android无法设置screenOrientation,

时间:2016-08-09 23:35:58

标签: android-activity orientation screen-orientation

我已经阅读了我可以在这个和其他网站上找到的每个帖子,并按照建议进行了阅读,但是在最简单的实现中,当物理上处于横向方向时,我无法将Note 5设置为纵向模式。 我将建议的行添加到清单文件中,重建并且应用程序以横向模式启动。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.twistlogic.miwidget">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:configChanges="orientation"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

我也尝试用代码执行此操作,这是我的主要目的:

    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

没有产生任何效果。

我正在尝试学习Android,所以我理解这可能是因为我的知识有限。我要做的是修复方向并将其锁定在那里,然后仅在用户按下按钮时才允许更改方向。我确实读过屏幕尺寸必须在API 13之后设置。但我不确定如何这样做。我在创建项目时使用基本活动中的片段模板屏幕。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这可以在Main Activity中设置我没有尝试在Manifest中设置它是一行代码和几行编写测试好的这里是最后的Manifest代码

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

int orientation = getResources().getConfiguration().orientation;
if(orientation ==  Configuration.ORIENTATION_PORTRAIT){

}else if(orientation ==  Configuration.ORIENTATION_LANDSCAPE){}

在主要活动后的清单文件中粘贴到下面的行。

机器人:screenOrientation = “纵向”

我没有在Manifest文件中测试此代码