0

我正在使用 ZK6,我想根据移动设备的方向更改我的 UI 组件。

在 ZK 组件参考:Tablet Devices/Events/ClientInfoEvent中,有一个getOrientation()方法在ClientInfoEvent. 但是,我在课堂上没有看到这个方法,也找不到关于这个方法的任何信息。(见更新)

现在我正在使用这段代码在设备方向改变时调整组件大小。

@Override
public void doAfterCompose(Groupbox comp) throws Exception {
  super.doAfterCompose(comp);
  comp.addEventListener(Events.ON_CLIENT_INFO, new EventListener<ClientInfoEvent>() {
    @Override
    public void onEvent(ClientInfoEvent event) throws Exception {
      getSelf().setHeight(event.getScreenHeight() + "px");
      getSelf().setWidth(event.getScreenWidth() + "px");
    }
  });
}

但是我对它不太满意,因为它需要服务器更新组件,我仍然不知道它是什么方向。

那么,我怎么知道方向?根据这些信息调整组件尺寸的更好方法是什么?

我使用android模拟器进行测试,如果这很重要。

更新

我注意到这getOrientation()是在版本 6.5.0 中实现的,它不是来自稳定版本。

4

1 回答 1

0

由于6.5.0已经发布了一段时间,我决定回答这个问题。

基本上,ClientInfoEvent现在提供有关方向的信息,以及设备像素比

所以现在我们可以编写如下代码:

@Override
public void doAfterCompose(Groupbox comp) throws Exception {
  super.doAfterCompose(comp);
  comp.addEventListener(Events.ON_CLIENT_INFO, new EventListener<ClientInfoEvent>() {
    @Override
    public void onEvent(ClientInfoEvent event) throws Exception {
      if (event.isLandscape()) {
        // do things when landscape
      } else {
        // do other things else.
      }
    }
  });
}

对于重新调整组件大小,我编写了一些客户端代码来调整客户端的小部件宽度/高度,并在必要时使用 java 代码要求服务器更新组件。

于 2012-10-27T17:20:51.077 回答