Question

Mon application est obligée de fonctionner uniquement en mode paysage (MODIFIER:Je veux dire, les activités ont android:screenOrientation="landscape" dans le manifeste).J'ai donc les mises en page dans le dossier layout-land, et il n'y a pas de ressource du même nom dans le dossier portrait par défaut.

Parfois, lorsque je laisse mon appareil seul pendant quelques minutes et que je le réveille, j'obtiens une fermeture forcée, affichant un message « ressource non trouvée » dans le champ. setContentView méthode.

Je suppose que dans certaines conditions, Android recherche une ressource portrait avant de remarquer qu'il n'a besoin que de la mise en page paysage.Est-il toujours obligatoire d'avoir une ressource de mise en page dans le dossier portrait par défaut ?

MODIFIER 2 :Je ne demande pas comment forcer l'affichage d'une activité en mode portrait, je demande si le fait de ne pas avoir la ressource portrait correspondante est un problème potentiel de stabilité.

Était-ce utile?

La solution

Salut, s'il te plaît, lis

mise en page: tout est question de dispositions générales

port de mise en page : il s'agit d'une mise en page pour le widget qui doit changer pour l'orientation portrait

aménagement-terrain : il s'agit d'une mise en page pour le widget qui doit changer pour l'orientation paysage

Dans tous les cas, si vous êtes en mode paysage/portrait.Android recherche d'abord le fichier de mise en page dans le répertoire -portrait ou -landscape respectivement, s'il n'est pas trouvé, il reviendra au répertoire de mise en page par défaut pour le rechercher.

Il n'est pas nécessaire de placer les mises en page dans le dossier layout-land si vous savez que vous utiliserez uniquement le mode paysage.Utilisez simplement le dossier de mise en page par défaut

ce que vous pouvez faire, c'est dans votre cas

Vous pouvez définir l'orientation par défaut dans votre androidmanifest.xml

<activity android:name=".YoursActivity" android:screenOrientation="landscape" "/>

grâce à quoi tu peux écrire et partir

<activity
        android:name=".YoursActivity"
        android:label="@string/app_name" 
        android:screenOrientation="landscapre" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

Autres conseils

Vous pouvez définir l'orientation par défaut dans votre manifest.xml

<activity android:name=".YourActivity" android:screenOrientation="landscape" "/>

Vous pouvez également opter pour les deux par programme comme suit :

   setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

Mais par défaut, les mises en page dans /res/layout s'appliquent aux deux portrait et paysage.

MODIFIER :

Vous devriez également conserver le même nom de ressources dans la mise en page (par défaut) et le dossier layout-land (vous conserverez vos mises en page ajustées en paysage)

Vous n'êtes pas obligé de placer vos mises en page dans le dossier layout-land si vous savez que vous utiliserez uniquement le mode paysage.Utilisez le dossier de présentation par défaut et définissez l'orientation sur paysage dans le fichier manifeste pour toutes vos activités.

    android:screenOrientation="landscape"

définissez votre application en mode paysage uniquement.Ensuite, vous n’aurez pas besoin de différents dossiers de mise en page, n’en ayez qu’un.

Dans votre fichier manifeste

    <activity
        android:name=".ExampleActivity"
        android:label="@string/app_name" 
        android:screenOrientation="landscape" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

Voir aussi ce sujet

Comment définir l’ensemble de l’application en mode portrait uniquement ?

Si vous souhaitez utiliser uniquement le mode paysage dans vos activités, vous devez ajouter android:screenOrientation="landscape" pour chaque activité dans le fichier AndroidManifest.xml.Par exemple:

<activity android:name="MainActivity" android:label="@string/app_name" android:screenOrientation="landscape">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

Après cela, peu importe où vous stockez vos mises en page /layout-land dossier ou simple /layout dossier

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top