android - écran - mode portrait tablette




Android-désactiver le mode paysage? (20)

Ajouter android:screenOrientation="portrait" à l'activité que vous voulez désactiver le mode paysage.

Comment puis-je désactiver le mode paysage pour certaines vues de mon application Android?


Ajoutez cette android:screenOrientation="portrait" dans votre fichier manifeste où vous déclarez votre activité comme ceci

<activity android:name=".yourActivity"
    ....
    android:screenOrientation="portrait" />

Si vous voulez faire en utilisant le code java, essayez

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

avant d'appeler la méthode setContentView pour votre activité dans onCreate() .

J'espère que cette aide et facilement compréhensible pour tous ...


Ajoutez l'extrait suivant dans votre fichier manifeste.

<activity android:name=".yourActivity"
          ....
          android:screenOrientation="portrait"/>

Ce soutien uniquement en mode portrait


Ajoutez simplement cet attribut dans votre tag d'activité.

 android:screenOrientation="portrait"

Cela a fonctionné pour moi, Essayez d'ajouter ce code dans le fichier AndroidManifest

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

Dans l'espoir d'aider quelqu'un d'autre, l'attribut suivant sur ACTIVITY dans AndroidManifest.xml est tout ce dont vous avez besoin:

android: configChanges = "orientation"

Donc, noeud d'activité complète:

<activity android:name="Activity1" 
    android:icon="@drawable/icon" 
    android:label="App Name" 
    android:configChanges="orientation">

En kotlin même peut être réalisé par programme en utilisant ci-dessous

requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT

Il suffit d'ajouter android: screenOrientation = "portrait" à la balise d'activité dans le manifeste de l'application.

Par exemple:

    <activity android:name=".ui.activities.MainActivity"
       android:screenOrientation="portrait"></activity>

Si votre activité est liée à l'état d'orientation du premier périphérique, obtenez l'orientation actuelle du périphérique dans la méthode onCreate , puis onCreate pour toujours:

        int deviceRotation = ((WindowManager) getBaseContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getOrientation();

        if(deviceRotation == Surface.ROTATION_0) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
        else if(deviceRotation == Surface.ROTATION_180)
        {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
        }
        else if(deviceRotation == Surface.ROTATION_90)
        {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
        else if(deviceRotation == Surface.ROTATION_270)
        {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
        }

Si vous ne voulez pas vous tromper en ajoutant de l'orientation dans chaque entrée manifeste de l'activité, créez une classe BaseActivity (hérite de 'Activity' ou 'AppCompatActivity') qui sera héritée par chaque activité de votre application au lieu de 'Activity 'ou' AppCompatActivity 'et ajoutez juste le morceau de code suivant dans votre BaseActivity:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    // rest of your code......
}

Si vous voulez désactiver le Landscape mode for your android app (ou une seule activité), tout ce que vous avez à faire est d'ajouter,

android:screenOrientation="portrait" à la balise d'activité dans le fichier AndroidManifest.xml .

Comme:

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

Une autre voie, l'approche programmatique.

Si vous voulez faire cela par programme, par exemple. en utilisant le code Java. Vous pouvez le faire en ajoutant le code ci-dessous dans la classe Java de l'activité que vous ne souhaitez pas afficher en mode paysage.

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

J'espère que cela vous aide. Pour plus de détails, vous pouvez visiter ici entrer la description du lien ici


Si vous voulez des paramètres d'utilisateur,

alors je recommanderais setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

Vous pouvez modifier les paramètres à partir d'un menu de paramètres.

J'en ai besoin car mes timers doivent correspondre à ce qui est sur l'écran, et tourner l'écran détruira l'activité en cours.


Vous devez définir l'orientation de chaque activité.

<activity
                android:name="com.example.SplashScreen2"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" >
            </activity>
            <activity
                android:name="com.example.Registration"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" >
            </activity>
            <activity
                android:name="com.example.Verification"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" >
            </activity>
            <activity
                android:name="com.example.WelcomeAlmostDone"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" >
            </activity>
            <activity
                android:name="com.example.PasswordRegistration"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" >
            </activity>

Vous devriez mettre ce code dans le fichier des manifestes .......

    <activity android:name=".SunderFlowersActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
        >
    </activity>

Vous pouvez le faire pour l'ensemble de votre application sans avoir à étendre toutes vos activités à une classe de base commune.

L'astuce consiste d'abord à s'assurer que vous incluez une sous-classe Application dans votre projet. Dans son onCreate (), appelé lorsque votre application démarre pour la première fois, vous enregistrez un objet ActivityLifecycleCallbacks (niveau API 14+) pour recevoir des notifications d'événements de cycle de vie d'activité.

Cela vous donne la possibilité d'exécuter votre propre code chaque fois qu'une activité de votre application est démarrée (ou arrêtée, ou reprise, ou autre). À ce stade, vous pouvez appeler setRequestedOrientation () sur l'activité nouvellement créée.

Et n'oubliez pas d'ajouter l'application: name = ". MyApp" dans votre fichier manifeste.

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);

        }

        ....

    });

}

}


ajouter une classe à l'intérieur de la méthode oncreate ()

 setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

utilisation

android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait" 

vous devriez changer android:screenOrientation="sensorPortait" dans AndroidManifest.xml


Ajouter android:screenOrientation="portrait" à l'activité dans le AndroidManifest.xml. Par exemple:

<activity android:name=".SomeActivity"
    android:label="@string/app_name"
    android:screenOrientation="portrait" />

EDIT: Puisque c'est devenu une réponse très populaire, je me sens très coupable car forcer le portrait est rarement la bonne solution aux problèmes auxquels elle est fréquemment appliquée.
Les principales mises en garde avec le portrait forcé:

  • Cela ne vous dispense pas de devoir penser à des événements de cycle de vie d'activité ou à un état d'enregistrement / de restauration correct. Il y a beaucoup de choses autres que la rotation d'applications qui peuvent déclencher une destruction / récréation d'activité, y compris des choses inévitables comme le multitâche. Il n'y a pas de raccourci; apprendre à utiliser les bundles et les fragments retainInstance .
  • Gardez à l'esprit que contrairement à l'expérience iPhone relativement uniforme, il existe de nombreux appareils où le portrait n'est pas l'orientation clairement populaire. Lorsque les utilisateurs sont sur des appareils avec des claviers ou des manettes de jeu à la Droid 1-4, Xperia Play ou Nvidia Shield, forcer le portrait peut faire de votre application un problème d'ergonomie (surtout sur le Shield). Si votre application ne présente pas un cas d'utilisation extrêmement spécifique qui entraînerait une expérience totalement négative pour soutenir d'autres orientations, vous ne devriez probablement pas forcer le paysage. Je parle de choses comme, "ceci est une application de contrôle à distance pour un téléphone avec un blaster IR sur un seul côté de l'appareil", ou "il s'agit d'une application de caisse enregistreuse pour un modèle spécifique de tablette toujours utilisé dans un fixe quai matériel. "

La plupart des applications doivent donc laisser les capteurs, les logiciels et la configuration physique du téléphone décider eux-mêmes de la manière dont l'utilisateur souhaite interagir avec votre application. Cependant, vous pouvez toujours penser à certains cas si vous n'êtes pas satisfait du comportement par défaut de l'orientation du sensor dans votre cas d'utilisation:

  • Si votre principale préoccupation est l'orientation accidentelle change à mi-activité que vous pensez que les capteurs et le logiciel de l'appareil ne vont pas bien gérer (par exemple, dans un jeu à inclinaison) envisager de soutenir paysage et portrait, mais en utilisant le nosensor . Cela force le paysage sur la plupart des tablettes et le portrait sur la plupart des téléphones, mais je ne recommande toujours pas cela pour la plupart des applications "normales" (certains utilisateurs aiment saisir le clavier logiciel du paysage sur leurs téléphones et beaucoup d'utilisateurs en mode portrait). vous devriez les laisser).
  • Si vous avez encore besoin de forcer le portrait pour une raison quelconque, sensorPortrait peut être meilleur que portrait pour Android 2.3+; cela permet un portrait à l'envers, ce qui est assez commun dans l'utilisation de la tablette.

 <?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>

nous pouvons restreindre l'activité en mode portrait ou paysage en utilisant l'attribut ou android: screenOrientation.

si nous avons plus d'une activité dans mon programme, alors vous avez la liberté de restreindre n'importe quelle activité dans l'un quel que soit le mode et cela n'affecte jamais les autres que vous ne voulez pas.





android-manifest