我正在寻找对用于 GUI 布局的算法的系统审查。我对那些偏向于速度而非复杂性的算法特别感兴趣,但除了“不使用约束解算器”之外,很难找到任何有用的东西。
到目前为止,我发现的最好的一篇是 Clemens Zeidler、Christof Lutteroth 和 Gerald Weber 的 Constraint Solving for Beautiful User Interface:How Solving Strategies Support Layout Aesthetics。不幸的是,它很短而且不是很具体。
到目前为止,布局算法的前景在我看来是这样的:
每个人都喜欢的食火鸡几乎无处不在。
奥克兰布局模型似乎没有人使用,但由于其作者是多产的作家,因此众所周知。
当涉及到流布局(尤其是文本流)时,普遍讨厌的 HTML/CSS 组合完全破坏了前两者。
接下来是桌面 GUI 框架中使用的算法,WPF、Qt 和 MigLayout for Swing 最受欢迎。(我还没有弄清楚它们的性能特征,但我记得与 WinForms 相比,WPF 布局速度令我感到失望——更快的绘图带来的收益被较慢的布局抵消了)
还有一些似乎没人知道的游戏引擎 UI。
其余的是古老的 GUI 工具包,它们通常将简单的网格容器作为最强大的布局工具。
我错过了什么重要的事情吗?