mise en page terrestres fichiers xml ne fonctionne pas avec le dos d'appel onConfigurationChanged
-
26-10-2019 - |
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.
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"