2010-10-29 6 views
6

Je souhaite modifier la disposition sans appeler la méthode onCreate. Je définis aussi android: configChanges = "orientation | keyboardHidden" dans mon activité et n'appelle pas la méthode onCreate mais la disposition ne s'ajuste pas correctement en mode paysage.modifier l'orientation sans appel OnCreate

ma disposition actuelle se présente comme suit.

alt text

après l'orientation du changement comme paysage ressembler comme suit: alt text

mais sur le paysage je veux le résultat suivant.

alt text

est-il une propriété adjacente automatique?

comment puis-je le faire?

+0

Est-ce que vous voulez avoir votre application en mode paysage par défaut ou quoi exactement vous essayez? –

Répondre

0

Je vais supposer que vous utilisez un LinearLayout, parce que vous n'avez pas spécifié, mais il y a une fonction dans la classe LinearLayout appelée setOrientation() qui devrait résoudre ce problème. Vous devrez créer une instance de votre mise en page dans votre fichier java (ce que vous avez peut-être déjà fait), puis créer un écouteur d'orientation ou changer d'écouteur sur votre fenêtre. Après cela, il suffit de changer l'orientation horizontale/verticale en fonction de l'orientation de l'écran.

+0

J'utilise TableLayout. Est-ce possible en linéaire? –

+0

si cela est possible grâce à LinearLayout, veuillez me fournir un exemple de code. –

+0

ouais, il est très facile d'utiliser LinearLayout, vous pouvez trouver le code source partout –

4

Il n'y a pas de propriété de réglage automatique lorsque la vue passe du mode portrait au mode paysage.

Pour les images que vous souhaitez afficher en mode paysage

Créer un fichier NomFichier.xml et la conception de votre mise en page pour le mode paysage. Donnez le même nom de fichier que votre fichier xml précédent dans le dossier de mise en page que vous utilisez pour l'activité.

Créer un dossier dans res/nom comme la mise en page terre, puis garder ce fichier NomFichier.xml dans res/dossier mise en terre

Il appellera automatiquement res/mise en terre/filename.xml lorsque des changements d'orientation du portrait au paysage.

Vous pouvez également utiliser

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 

     super.onConfigurationChanged(newConfig); 

     if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { 
      //your code 
     } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     //your code 
     } 
    } 
1

Vous pouvez ajouter android:configChanges="orientation" à tag d'activité sur AndroidManifest.xml. Essayez-le.

0

Vous ne mettez que cet android: configChanges = "orientation | keyboardHidden" dans votre tag d'activité dans le travail de android manifest.it.

0

Mettez dans votre bro manifeste ..

android:configChanges="orientation|keyboardHidden|screenSize|uiMode" 

Il est à résoudre votre et mon problème: D

Questions connexes