我如何禁用景观模式的一些观点在我的Android应用程序?


当前回答

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="in.co.nurture.bajajfinserv">
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

    <application

        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity" android:screenOrientation="portrait">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

我们可以使用属性或android:screenOrientation来限制活动在纵向或横向模式。

如果我们在程序中有多个活动,那么我们可以自由地限制任何模式下的任何一个活动,它不会影响你不想要的其他活动。

其他回答

您可以为整个应用程序这样做,而不必使所有活动扩展一个公共基类。

诀窍是首先确保在项目中包含Application子类。在它的onCreate()中,当你的应用程序第一次启动时调用,你注册了一个ActivityLifecycleCallbacks对象(API级别14+)来接收活动生命周期事件的通知。

这让你有机会在应用程序中的任何活动启动(或停止,或恢复,或其他)时执行自己的代码。此时,您可以在新创建的活动上调用setRequestedOrientation()。

不要忘记添加app:name="。MyApp”。

class MyApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();  

        // register to be informed of activities starting up
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {

            @Override
            public void onActivityCreated(Activity activity, 
                                          Bundle savedInstanceState) {

                // new activity created; force its orientation to portrait
                activity.setRequestedOrientation(
                    ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }
            ....
        });
    }
}

在你的manifest中添加android:screenOrientation="portrait"。如果您想为特定的活动应用模式,请在所需的活动标记中定义此模式。或者在应用程序标签中定义整个应用程序。比如:

<application
    <!-- ... -->
    android:screenOrientation="portrait"
</application>

如果你想禁用Android应用程序(或单个活动)的横向模式,你需要做的就是添加:

android:screenOrientation="portrait"到AndroidManifest.xml文件中的活动标签。

如:

<activity 
    android:name="YourActivityName"
    android:icon="@drawable/ic_launcher"
    android:label="Your App Name"
    android:screenOrientation="portrait">

另一种方法:程序化方法。

如果您希望以编程方式完成此操作,即使用Java代码。您可以在不希望以横向模式显示的活动的Java类中添加以下代码。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

添加android:screenOrientation="portrait"到你想禁用横向模式的活动中。

只需在活动标记中添加此属性。

 android:screenOrientation="portrait"