2011-11-11 17 views
5

Desidero che la mia app cambi le diverse parti dell'interfaccia utente quando la risoluzione è abbastanza grande e in modalità orizzontale e rileva le modifiche mentre l'app è in esecuzione (rotazione dello schermo su un dispositivo mobile, per esempio).GWT - Rileva diverse risoluzioni dello schermo mentre è in esecuzione

So che dovrei avere un evento per ascoltare la risoluzione dello schermo (che può essere ottenuta tramite javascript), ma non so come farlo. Come appendo un evento su un valore sempre rinfrescante?

risposta

6

Volete Window.addResizeHandler richiesto

Window.addResizeHandler(new ResizeHandler() { 

    @Override 
    public void onResize(ResizeEvent event) { 
     yourCustomLayoutAdjustmentMethod(event.getHeight(), event.getWidth()); 
    } 
}); 

No Javascript!

5

con MGWT libreria (http://code.google.com/p/mgwt/):

importazione queste classi

import com.googlecode.mgwt.dom.client.event.orientation.OrientationChangeEvent; 
import com.googlecode.mgwt.dom.client.event.orientation.OrientationChangeEvent.ORIENTATION; 
import com.googlecode.mgwt.dom.client.event.orientation.OrientationChangeHandler; 
import com.googlecode.mgwt.ui.client.MGWT; 

definire un gestore di orientamento

class MyOrientationChangeHandler implements OrientationChangeHandler { 
    @Override 
    public void onOrientationChanged(OrientationChangeEvent event) { 
     switch (event.getOrientation()) { 
      case LANDSCAPE: 
       // handle landscape orientation 
       return; 
      case PORTRAIT: 
       // handle portrait orientation 
       return; 

     } 
    } 
} 

aggiungere il gestore

MGWT.addOrientationChangeHandler(new MyOrientationChangeHandler()); 
+0

ottima soluzione! – confile

Problemi correlati