Devo applicare diversi layout per gli orientamenti verticali e orizzontali della mia attività. Inoltre, ho bisogno di mostrare un avviso se l'orientamento è verticale.Gestione attività in rotazione su Android
Ho specificato android:configChanges="orientation|keyboardHidden"
in AndroidManifest. Ho anche l'override metodo onConfigurationChanged come questo:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
Log.d("tag", "config changed");
super.onConfigurationChanged(newConfig);
int orientation = newConfig.orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT)
Log.d("tag", "Portrait");
else if (orientation == Configuration.ORIENTATION_LANDSCAPE)
Log.d("tag", "Landscape");
else
Log.w("tag", "other: " + orientation);
....
}
Mentre rotazione dal paesaggio al registro ritratto assomiglia:
config changed
Portrait
Ma mentre si passa da verticale a orizzontale Sembra
config changed
Portrait
config changed
Landscape
Perché onConfigurationChanged viene chiamato due volte? Come posso evitarlo?
Perché onConfigurationChanged() non è valido? Potresti darmi un collegamento con una spiegazione? Se userò onCreate() o qualcosa del genere, l'attività verrà ricreata e i suoi dati andranno persi. – darja