74 votes

Dans AndroidManifest : Expecting Android:screenOrientation="unspecified" (attendu)

Android Studio 3.6.

Je veux que mon application soit toujours en portrait mode. Ainsi, dans mon AndroidMainfest.xml :

<activity
   android:name=".activity.SplashActivity"
   android:screenOrientation="portrait">
   <intent-filter>
      <action android:name="android.intent.action.MAIN" />

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

Je lance l'application et SplashActivity spectacles en portrait mode. C'est bien. Mais l'éditeur affiche l'erreur suivante :

Expecting android:screenOrientation="unspecified"

Pourquoi ?

4voto

Damo Gurcinovski Points 109

Ajouter la ligne suivante après android:screenOrientation="portrait"

tools:ignore="LockedOrientationActivity"

Cliquez ensuite sur Alt + Enter

enter image description here

3voto

Shohel Rana Points 530

J'ai utilisé la procédure ci-dessous. Elle fonctionne parfaitement pour moi. Dans Android studio 3.6.0, je pense qu'ils veulent que l'utilisateur gère l'orientation et encouragent le développeur à utiliser le ViewModel. Utilisez la procédure ci-dessous pour ignorer cela.

Ajouter d'abord :

xmlns:android="http://schemas.android.com/apk/res/android"

dans la balise du manifeste.

Deuxièmement, ajoutez

tools:ignore="LockedOrientationActivity" 

dans l'étiquette de l'application. Bon codage.

1voto

MohanRaj Points 193

J'ai été confronté à ce problème, dans mon exigence, certaines activités supporteront les deux orientations et les autres resteront en portrait, dans ce cas, j'ai résolu par les étapes suivantes :

Cas-1:- Pour verrouiller l'orientation

Étape 1 : Veuillez ajouter la ligne suivante Balise d'application dans AndroidManifest.xml

tools:ignore="LockedOrientationActivity" (activité verrouillée)

<application
android:name=".activity.MyApplication"
tools:ignore="LockedOrientationActivity">

Étape 2 : Si vous souhaitez verrouiller l'orientation de l'écran, que ce soit en mode portrait ou paysage. ajoutez la ligne suivante dans la balise d'activité

Android:screenOrientation="portrait" ou "landscape".

Cas 2 : - Supposons que vous vouliez autoriser l'orientation dans une activité particulière et que vous ayez une conception spécifique pour le paysage.

Étape 1 : Supprimez la valeur Orientation dans configchanges et supprimez l'orientation de l'écran si elle existe dans la balise activity, et ma suggestion personnelle est d'utiliser (LifecycleObserver) dans Activity pour ne pas perdre les valeurs lors du changement d'orientation.

Android:configChanges="orientation"
Android:screenOrientation="portrait" ou "landscape".

C'est la façon dont j'ai résolu ce problème, j'espère que cela vous aidera, merci et bon codage.

0voto

Abu Baker Nawaz Points 11

Essayez avec le code ci-dessous :

if(MainActivity.this.getResources().getConfiguration().orientation== Configuration.ORIENTATION_PORTRAIT){
    MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}

-1voto

R.Desai Points 1100

Essayez cette solution :

AndroidMainfest :

<activity
    android:name="com.ui.activity.SplashActivity"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustPan">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

J'espère que cela vous aidera !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X