我希望我的Android应用程序只能以纵向模式运行?

Jam*_*mes 330 android screen-orientation

我希望我的Android应用程序只能以纵向模式运行?我怎样才能做到这一点?

Cri*_*ian 734

在清单中,为您的所有活动设置此项:

<activity android:name=".YourActivity"
    android:configChanges="orientation"
    android:screenOrientation="portrait"/>
Run Code Online (Sandbox Code Playgroud)

让我解释:

  • 随着android:configChanges="orientation"你告诉Android你将负责方向的变化.
  • android:screenOrientation="portrait" 您设置默认方向模式.

  • 这足以设置`android:screenOrientation ="portrait"` (60认同)
  • 不是很好如果我们可以为应用程序中的所有活动设置"全局"方向?看起来我们别无选择,只能在每个活动中复制/粘贴"portrait"属性...... (50认同)
  • @EduardoCoelho你实际上可以创建一个基类`PortraitActivity`并在onCreate中调用`setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)`所有扩展它的活动都不会旋转 (8认同)
  • `tools:ignore="LockedOrientationActivity"` - 添加此选项以禁用 Manafest.xml 中的警告消息。 (5认同)
  • @RestInPeace是的,好点.但这不是我的想法错,那只是Java不支持多重继承:) (3认同)
  • @Twinone:当不同的 Activity 想要从 `Activity` 的不同子类继承时怎么样,比如一个 Activity 是从 `ListActivity` 扩展的,而其他的只是从 `Activity` 扩展? (2认同)

Pra*_*een 49

在Android清单文件,把属性为你的<activity>那个android:screenOrientation="portrait"

  • 让我补充一下:从 Android Sudio 3.6 开始需要使用 android:screenOrientation="fullSensor" 或 android:screenOrientation="unspecified"。fullSensor 意味着无论您是否打开“旋转关闭”,它都会根据您移动手机而改变方向。未指定意味着如果您打开“旋转”关闭,那么它将仅保持在该方向,如果没有,那么它将根据您移动手机而改变方向。 (2认同)

小智 24

有两种方式,

  1. android:screenOrientation="portrait"为清单文件中的每个活动添加
  2. 添加this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);每个java文件.

  • 第二个选项具有可怕的副作用,它将在Portrait中启动时重新启动您的活动. (13认同)

Mey*_*ari 8

在清单中:

<activity android:name=".activity.MainActivity"
        android:screenOrientation="portrait"
        tools:ignore="LockedOrientationActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

或:在 MainActivity 中

@SuppressLint("SourceLockedOrientationActivity")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Run Code Online (Sandbox Code Playgroud)