mise en page terrestres fichiers xml ne fonctionne pas avec le dos d'appel onConfigurationChanged

StackOverflow https://stackoverflow.com/questions/5336614

Question

J'ai mises en page différentes pour le mode portrait et paysage et je dois aussi passer outre le rappel de onConfigurationChanged(). Mais le problème est quand je change l'orientation du téléphone au paysage ma mise en page du paysage ne fonctionne pas.

Quelqu'un peut-il me dire ce problème est de retour d'appel onConfigurationChanged ou quelque chose d'autre qui cause?

Toute aide sera reconnaissante.

Était-ce utile?

La solution

i doivent également remplacer le rappel onConfigurationChanged ()

Pourquoi?

mais le problème est quand je change l'orientation du téléphone au paysage ma mise en page du paysage ne fonctionne pas.

Je vais deviner que « ne fonctionne pas » signifie que la mise en page du paysage ne prend pas effet. Ce comportement est normal étant donné ce que vous avez fait.

Pour résoudre ce problème, idéalement vous supprimez android:configChanges="keyboardHidden|orientation". La mise en cet attribut doit être fait en dernier recours, et en général pour les activités qui ne sont pas séparés portrait par rapport à des fichiers de mise en page de paysage.

Autres conseils

Je suis sûr qu'il vous aidera définitivement ...

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int ot = getResources().getConfiguration().orientation;
    switch (ot) {
    case Configuration.ORIENTATION_LANDSCAPE:
        setContentView(R.layout.main_land);
        break;
    case Configuration.ORIENTATION_PORTRAIT:
        setContentView(R.layout.main);
        break;
    }
    Toast.makeText(this, "Helloo", Toast.LENGTH_SHORT).show();
}
enter code here
@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);

    int ot = getResources().getConfiguration().orientation;
    switch (ot) {
    case Configuration.ORIENTATION_LANDSCAPE:
        setContentView(R.layout.main_land);
        break;
    case Configuration.ORIENTATION_PORTRAIT:
        setContentView(R.layout.main);
        break;
    }
}

@Override
public Object onRetainNonConfigurationInstance() {
    // TODO Auto-generated method stub
    return super.onRetainNonConfigurationInstance();
}

}

et ajoutez cette ligne dans votre fichier manifest .. android: configChanges = "keyboardHidden | orientation"

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