【问题标题】:how to write a layout manager?如何编写布局管理器?
【发布时间】:2015-04-10 22:37:23
【问题描述】:

我想为 j2me 编写一个布局管理器。我已经有了小部件和面板(在这种情况下,面板是一组小部件)。现在我想添加动态布局管理,所以当我在最外面的面板上调用 doLayout 时,内部小部件和面板会根据设备的宽度和高度重新排列。

我想知道布局管理器是否有任何众所周知的模式。

【问题讨论】:

  • 你为什么要写你的​​布局管理器,你可以使用LWUIT。如果您坚持编写自己的管理器,请查看 LWUIT,它有许多布局管理器,因此您可以从其中一个开始。

标签: design-patterns java-me layout-manager


【解决方案1】:

每个 UI 对象都应返回一个“最小尺寸 (w,h)”。然后,您需要一种算法来遍历所有对象并将可用区域分成块并将每个块分配给一个对象。 您可以根据对象相关性对其进行树分区。

【讨论】:

  • 是的。这是一个想法。现在我的算法遍历整个树收集每个小部件的最小大小。然后它会执行第二遍,根据可用房间和小部件的属性(对齐和可扩展性)调整小部件的大小。我想知道我是否可以一次完成所有事情。
  • 我认为双通道是目前最好和最干净的方法。
【解决方案2】:

我知道的常用方法是将每个 Displayable 保存在 Stack 集合中,这样当前面板/屏幕应该始终位于 Stack 顶部。当用户按下“返回”按钮时,您只需将上一个屏幕/面板弹出堆栈顶部。

例如can be found here

【讨论】:

  • 是的。但这并不能处理不同的屏幕尺寸。
【解决方案3】:

根据我的经验,我的布局管理器已经发展到适合平台(X11、VT100、Windows)及其特性。但是我发现了共同的特征。这是一个很好的阅读/起点,它将设计模式融入我们的 GUI 挑战。

参考:Layout Manager using Design Patterns

【讨论】:

    猜你喜欢
    • 2018-06-12
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2012-08-09
    • 1970-01-01
    相关资源
    最近更新 更多