Android Changement D'Orientation
Mes onglets application ne réaffiche pas le point de vue d'un changement d'orientation.
J'ai ajouté
android:configChanges="keyboardHidden|orientation"
à l'onglet principal de l'activité et pour chaque activité dans le manifeste.
J'ai ajouté à chaque activité de cette méthode:
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.active_alt);
mColorLegendBtn = (Button) findViewById(R.id.colorbtn);
mStatusView = (TextView) findViewById(R.id.celltitle1);
TextView mStatusView1 = (TextView) findViewById(R.id.celltitle2);
mStatusView1.setText(mStatusView1.getText()+"testcase1");
mStatusView.setText(mStatusView.getText()+"testcase");
initUI();
}
public void initUI() {
l1 = (ListView) findViewById(R.id.ListView01);
EfficientAdapter efficientAdapter = new EfficientAdapter(mContext);
l1.setAdapter(null);
l1.setAdapter(efficientAdapter);
}
Sur le lancement, les onglets, liste, bouton et textview sont affichés correctement.
Quand j'ai changer l'orientation dans l'émulateur, seuls les onglets sont affichés, aucun des autres widgets, l'écran est noir.
Ce qui me manque?
J'ai connu un problème très similaire, et avez trouvé une solution à ce problème. Il a manifesté dans un couple de différentes instances. Voir ma question here.
OriginalL'auteur Tori | 2011-01-06
Vous devez vous connecter pour publier un commentaire.
J'ai eu exactement ce problème. Après beaucoup d'essais et d'erreurs, j'ai finalement résolu par un changement de ligne à la manifester.
L'astuce consiste à ajouter
à votre
TabActivity
'entrée dans le manifeste. Laissez toutes les activités enfant seul. Même pas la peine de la mise en œuvre deonConfigurationChanged()
, pas même dans leTabActivity
.Je ne sais pas comment ou pourquoi cela semble fonctionner, mais l'effet est la mise en page est actualisée, et les deux onglets, l'enfant et l'activité contenu sont redessinées correctement dans la nouvelle orientation.
Ensuite, il ne prendra pas en xml du layout-land dossier si nous écrire en maifest au-dessus de la ligne de code.
OriginalL'auteur Graham Borland
Avec succès, j'ai trouvé que la meilleure façon d'avoir de l'écran change avec plus de contrôle est de faire votre mise en page xml pour le mode paysage dans un autre xml comme suit:
utilisation /mise en page/et /layout-land/pour vos mises en page ainsi que Graham Borland réponse est d'or.
l'extrait ci-dessus est ce qui a fait le travail de la mine. 🙂
ohh je crois que le "non spécifié" est ce qui permet au système de faire ce qu'il pense être le mieux...
Bonne chance!
essayez d'ajouter: android:screenOrientation="non spécifié" lui Donner plus de propriété d'un coup et laissez-moi savoir.
OriginalL'auteur Lenn Dolling
Dans
Mono
pourAndroid
avec une cible API de plus de13
j'ai trouvé que la ligne qui irait à l'intérieur de l'espace de noms mais en dehors de laActivity class
:entraîner le déclenchement de
OnConfigurationChanged()
même si changer le manifeste n'avait pas.OriginalL'auteur Travis Coulter
Pourrait-il être simplement que votre mise en page ne fonctionne pas dans le paysage et le mode portrait? Essayez de démarrer votre application après la rotation, vérifier si qui donne les mêmes résultats. Si oui: fixez votre disposition 😀
Les onglets...êtes-vous à l'aide d'un tabactivity avec des onglets qui sont des activités sur leur propre? Avez-vous d'ajouter le code à votre tabactivity ainsi? J'aimerais ajouter quelques traces de vérifier ce que onconfigchanged fonctions sont appelées, et quand.
Oui, j'ai fait ajouter le onconfigchanged à la tabactivity, et avec les logs je vois que onconfigchanged est appelé à la fois sur l'onglet de l'activité et de l'activité en cours d'affichage. Le problème est que la vue n'est pas montré.
désolé, plus d'idées alors. peut-être que quelqu'un peut voir quelque chose si vous ajoutez plus de code? cela semble bien pour moi, mais vous ne savez pas ce qui se passe à votre tabHost et tous
OriginalL'auteur Nanne