Autore Topic: Problema cambiamento layout  (Letto 1495 volte)

Offline neo2284

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Problema cambiamento layout
« il: 16 Febbraio 2011, 19:29:47 CET »
0
Ciao ragazzi, complimenti per il FORUM :D
Ho il bisogno di far cambiare il layout ogni volta che cambia l'orientazione del dispositivo.
La cosa che ho fatto è questa:
- modificato il file manifest aggiungendo l'attributo android:configChanges="orientation|keyboardHidden"

- nella classe invece ho inserito questo:

Codice (Java): [Seleziona]
@Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                Configuration config = getResources().getConfiguration();
               
                if (config.orientation == Configuration.ORIENTATION_LANDSCAPE){
                        setContentView(R.layout.main_land2);
                       
                }
               
                if (config.orientation == Configuration.ORIENTATION_PORTRAIT){
                        setContentView(R.layout.main);
                       
                       
                }

                funzione();
               
            }
       
       
       
                @Override
            public void onConfigurationChanged(Configuration newConfig) {
                super.onConfigurationChanged(newConfig);
               
               
               
                if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT ){
                        setContentView(R.layout.main);
                       
                }
               
               
                if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
                        setContentView(R.layout.main_land2);
                       
                }
               
                funzione();
            }


praticamente sia all'avvio che quando cambia l'orientamento faccio il controllo
l'unica cosa che una volta che passo al landscape non torno piu indietro, mi siego meglio, è come se il dispositivo rimanesse in landscape mode..questo l'ho controllato inserendo dei lo all'interno dei controlli


Attendo vostre notizie

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problema cambiamento layout
« Risposta #1 il: 16 Febbraio 2011, 20:22:21 CET »
0
Ma perchè tutto questo sbattimento? :D

basta che metti il tuo layout main_land2 nella cartella layout-land (che devi creare sotto res) e lo rinomini in main.xml
Android provvederà a caricare in automatico il layout in base allo stato del dispositivo!

Offline neo2284

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Problema cambiamento layout
« Risposta #2 il: 16 Febbraio 2011, 20:53:57 CET »
0
avevo gia provato a farlo ma senza nessun risultato.. cmq appena ho tempo ci riprovo e posto quello che ho fatto, magari ho sbaglio a fare qualcosa..anzi sicuramente..

Offline neo2284

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Problema cambiamento layout
« Risposta #3 il: 17 Febbraio 2011, 21:59:13 CET »
0
ragazzi niente da fare.. ho provato e riprovato mettendo il file main.xml dentro la cartella layout-land ma niente, da portrait a landscape va bene, da landscape a portrait niente da fare!
non so cosa fare.. devo forse inserire qualcosa nel manifest o in qualche altro file?

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Problema cambiamento layout
« Risposta #4 il: 17 Febbraio 2011, 22:41:03 CET »
0
mmm... mi pare impossible, seguendo l'algoritmo di scelta dei layout di google non può essere!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline neo2284

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Problema cambiamento layout
« Risposta #5 il: 17 Febbraio 2011, 22:52:13 CET »
0
ti spiego quello che ho fatto:
ho realizzato due layout, uno landscape e uno portrait chiamati entrambi main.xml e messi rispettivamente dentro la cartella res/layout-land e uno dentro res/layout.
oltre a questo ho messo ho aggiunto questo:

Codice (Java): [Seleziona]
public void onConfigurationChanged(Configuration newConfig) {
                super.onConfigurationChanged(newConfig);
                setContentView(R.layout.main);
//chiamo una funzione
}


ma l'ho aggiunto giusto per non perdere i dati quando passo da una visualizzazione ad un altra..
il bello è che se avvio l'applicazione in entrambi i modi il layout è ok, ma come visualizzo la modalita landscape la continuo a visualizzare anche in modalita portrait..

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problema cambiamento layout
« Risposta #6 il: 17 Febbraio 2011, 22:54:29 CET »
0
Comunqu non serve il  setContentView(R.layout.main); li dentro

Offline neo2284

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Problema cambiamento layout
« Risposta #7 il: 17 Febbraio 2011, 22:58:37 CET »
0
ma non serve perche posso farne a meno o è sbagliato?
io lho messo solo per far ricaricare il layout ogni volta che ci entro..tutto qui..
ma una soluzione proprio non si trova?sapresti dirmi se oltre a inserire la cartella layout-land devo fare qualche altra cosa?

Offline neo2284

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Problema cambiamento layout
« Risposta #8 il: 17 Febbraio 2011, 23:00:11 CET »
0
cmq l'ho appena tolto e ora visualizzo sempre il layout che vedo all'avvio dell'applicazione..?

Offline neo2284

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Problema cambiamento layout
« Risposta #9 il: 17 Febbraio 2011, 23:06:59 CET »
0
con questo codice:
Log.i(ACTIVITY_TAG, "modalita_portrait " + newConfig.orientation + newConfig.orientation);
anche se visualizzo l'applicazione in modalita portrait viene sempre fuori modalita_portrait 22

Offline beedme

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Desire
Re:Problema cambiamento layout
« Risposta #10 il: 11 Marzo 2011, 00:03:52 CET »
0
ciao sono nella stessa situazione, riconosce entrambi i layout (sia quello in landscape che quello normale), ma solo all'avvio setta quello giusto e alla rotazione modifica quello che ha caricato all'inizio.

Per caso avete capito qual'è il problema?

Grazie mille