Autore Topic: Rotazione questa sconosciuta :)  (Letto 436 volte)

Offline matttt

Rotazione questa sconosciuta :)
« il: 23 Agosto 2013, 16:21:18 CEST »
0
Ironia del subject a parte... sono alle prese col classico problema dell'app che si pianta a seguito di una rotazione del dispositivo.
Per risolvere la questione alla radice (per ora) ho scelto di bloccare del tutto la rotazione (ho visto tra l'altro che anche in qualche tutorial qui su AndDev si consiglia questa tra le possibili strade).
Inizialmente pensavo bastasse nel manifest impostare per ogni activity l'attributo:
Codice (XML): [Seleziona]
android:screenOrientation="portrait"Poi mi sono accorto che se effettuavo la rotazione con un progress bar attivo si piantava l'app.
Cercando attentamente ho scoperto che devo aggiungere anche l'attributo:
Codice (XML): [Seleziona]
android:configChanges="orientation|keyboardHidden"E ho risolto.

Tutto questo per chiedere... c'è altro che devo fare per ignorare la rotazione secondo voi?! :)
Altre info che ho trovato in giro ma che penso non mi servano sono:
- invocare setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_NOSENSOR ) o in alternativa ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
- fare un override di onConfigurationChanged()
« Ultima modifica: 23 Agosto 2013, 16:26:09 CEST da matttt »
Le mie apps su Google Play Store:

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Rotazione questa sconosciuta :)
« Risposta #1 il: 23 Agosto 2013, 16:32:13 CEST »
0
Questo

Codice (XML): [Seleziona]
android:configChanges="orientation|keyboardHidden"
va in coppia (non necessariamente) con: override di onConfigurationChanged().

Infatti con la prima "dici" che vuoi gestirti manualmente il cambio di rotazione (ad esempio mantenendo i layout), con il secondo gestisci appunto il cambio di rotazione.

Se ti serve solo che l'activity non si ricrei ogni volta che ruoti il telefono basta il primo... Se, ad esempio, devi cambiare quante colonne far vedere in una griglia (che ovviamente cambia dall'orientamento verticale o orizzontale) ti serve anche la seconda.
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline matttt

Re:Rotazione questa sconosciuta :)
« Risposta #2 il: 23 Agosto 2013, 16:37:43 CEST »
0
Come dicevo ora punto soltanto al blocco completo della rotazione (che tra l'altro va anche bene per la mia app).
Quindi fare l'override di onConfigurationChanged() attualmente non mi serve.
Cmq buono a sapersi :)

Post unito: 23 Agosto 2013, 19:32:50 CEST
Tra l'altro vedo che AdMob come attributi per il View Ad vuole...
Codice (XML): [Seleziona]
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"Che sia il caso di aggiungere anche tutti questi valori per evitare qualsiasi casistica di rotazione? :)
« Ultima modifica: 23 Agosto 2013, 19:32:50 CEST da matttt, Reason: Merged DoublePost »
Le mie apps su Google Play Store: