2011-11-11 40 views
5

Tôi muốn ứng dụng của mình thay đổi các phần khác nhau của giao diện người dùng khi độ phân giải đủ lớn và ở chế độ ngang và phát hiện thay đổi trong khi ứng dụng đang chạy (xoay màn hình trên thiết bị di động, ví dụ).GWT - Phát hiện các độ phân giải màn hình khác nhau khi chạy

Tôi biết rằng tôi nên có một sự kiện lắng nghe độ phân giải màn hình (có thể thu được qua javascript), nhưng tôi không biết cách thực hiện việc này. Làm cách nào để treo sự kiện trên giá trị luôn làm mới?

Trả lời

6

Bạn muốn Window.addResizeHandler cần

Window.addResizeHandler(new ResizeHandler() { 

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

Không JavaScript!

5

với MGWT thư viện (http://code.google.com/p/mgwt/):

nhập khẩu các lớp

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; 

xác định một handler hướng

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; 

     } 
    } 
} 

thêm xử lý của bạn

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

giải pháp tuyệt vời! – confile

Các vấn đề liên quan