GWT — Обнаружение различных разрешений экрана во время выполнения

#events #gwt

#Мероприятия #gwt

Вопрос:

Я хочу, чтобы мое приложение изменяло различные части пользовательского интерфейса, когда разрешение достаточно велико и находится в альбомном режиме, и обнаруживало изменения во время работы приложения (поворот экрана на мобильном устройстве, например).

Я знаю, что у меня должно быть событие, прослушивающее разрешение экрана (которое может быть получено с помощью javascript), но я не знаю, как это сделать. Как мне привязать событие к постоянно обновляющемуся значению?

Ответ №1:

Вы хотите Window.addResizeHandler

 Window.addResizeHandler(new ResizeHandler() {

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

JavaScript не требуется!

Ответ №2:

с помощью библиотеки MGWT (http://code.google.com/p/mgwt /) :

импортируйте эти классы

 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;
  

определите обработчик ориентации

 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;

        }
    }
}
  

добавьте свой обработчик

 MGWT.addOrientationChangeHandler(new MyOrientationChangeHandler ());