Android Studio 3.6.
Je veux que mon application soit toujours en portrait
mode. Donc 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
montre en portrait
mode. Agréable. Mais l'éditeur affiche l'erreur suivante:
Expecting android:screenOrientation="unspecified"
Pourquoi?
android
android-manifest
screen-orientation
un_abonné
la source
la source
cela n'affecte que Android Studio 3.6+
Quel est le problème ici? Ce problème se produit car le framework Android veut que l'utilisateur contrôle lui-même l'orientation de l'application, il n'est pas conseillé de restreindre l'orientation de votre application, par exemple, si un utilisateur souhaite utiliser l'application en orientation paysage, il retourne simplement l'appareil et les capteurs feront le travail, mais lorsqu'un le développeur restreint l'orientation de l'écran, même lorsque l'application du capteur de rotation fonctionne restera dans un état prédéfini, de manière à restreindre les capacités de l'appareil de l'utilisateur.
Que faire maintenant? Vous avez deux options., La première consiste à ignorer l'erreur car elle ne causera aucun échec de construction, même si je fais la même chose et la génération apk / aab est comme d'habitude Une autre option consiste à fournir des dispositions de paysage ou à gérer la rotation comme dans certains les applications qui reconnaissent si l'orientation est modifiée, elles inviteront l'utilisateur à changer l'orientation car l'application n'est pas prise en charge dans une telle orientation
Cela peut changer à l'avenir => à l'heure actuelle, cela n'affecte pas notre processus de construction, mais cela pourrait changer à l'avenir
la source
Dans Android studio 3.6.0, je suppose qu'ils veulent que l'utilisateur gère l'orientation et encourage le développeur à utiliser les choses de ViewModel . Permettez-moi d'expliquer screenOrientation en détail
android:screenOrientation="portrait"
vous donnera une erreur, vous devez soit spécifier
android:screenOrientation="fullSensor" or android:screenOrientation="unspecified"
fullSensor Signifie soit que vous avez activé la fonction "Pivoter" ou non, cela changera l'orientation en fonction du déplacement du téléphone
non spécifié Signifie que si vous avez activé la fonction Rotation désactivée, elle restera uniquement dans cette orientation et sinon, elle modifiera l'orientation en fonction du déplacement du téléphone.
la source
la source
J'ai utilisé la procédure ci-dessous. Cela fonctionne parfaitement pour moi. Dans Android studio 3.6.0, je pense qu'ils veulent que l'utilisateur gère l'orientation et encourage le développeur à utiliser les trucs de ViewModel. Utilisez la procédure ci-dessous pour ignorer cela.
Ajoutez d'abord:
dans la balise manifest.
Deuxièmement, ajouter
dans la balise d'application. Codage heureux.
la source
J'ai trouvé 2 façons de résoudre ce problème
Première,
Deuxièmement, `
la source
Ajouter la ligne suivante après
android:screenOrientation="portrait"
Cliquez ensuite sur Alt+Enter
la source
J'ai fait face à ce problème, dans mon exigence, une partie de l'activité soutiendra les deux orientations et les restes 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 balise d'application de ligne suivante dans AndroidManifest.xml
Étape 2: Si vous souhaitez verrouiller l'orientation de l'écran en mode portrait ou paysage, ajoutez la ligne suivante dans la balise d'activité
Cas-2: - Supposons que si vous souhaitez permettre l'orientation dans une activité particulière et avoir une conception spécifique pour le paysage
Étape 1: Supprimez la valeur d'orientation dans les changements de configuration et supprimez l'orientation de l'écran si elle existe dans la balise d'activité, et ma suggestion personnelle utilise (LifecycleObserver) dans Activity for sans perdre de valeurs lors du changement d'orientation.
C'est la façon dont je résous ce problème, j'espère que cela aide, merci et bon codage.
la source
Essayez cette solution:
J'espère que cela t'aides!
la source
vous pouvez utiliser ce code:
la source
Essayez de mettre ce qui suit dans la balise d'activité
la source