空间布局没有自动排版,重叠只能靠规则约束
别名: 空间排版规则 · 重叠约束 · layout engine absence
概念解释
桌面窗口一多,系统会贴边、会避免完全叠死、会给任务栏。空间里两块面板的中心都由抓取或跟随决定,没有人给它们做流式排版。它们重叠了,就重叠了——除非产品自己写出规则。空间重叠规则(spatial overlap rules)不是审美,是在没有自动排版的环境里,唯一能阻止两块可读表面抢同一视线的东西。缺规则的空间看起来很自由,读起来像一桌没人收的纸。
机制
2D 布局引擎处理的是矩形在矩形里:约束求解、锚点、流式换行,重叠是被当成错误或被明确的 z-order 消化掉的。三维里位姿有六自由度,约束求解贵,而且「往哪让」没有唯一答案——往上让可能出视野,往后让可能穿墙,往旁让可能离开可达。于是引擎缺席,重叠成为运行时的默认事故:延迟跟随把两块随身面板送进同一偏心角,世界锁定的告示贴到已经钉着的菜单上,抓取释放点落在另一块的正前方。没有规则时,人用身体去解:侧一步、伸手拨开,把排版账单付给姿态。规则可以很粗:最小角间距、同深度互斥、后打开的让先打开的——粗,但比没有强。
怎么研究
让人同时打开若干块面板完成对照任务,比较「无规则」「最小角间距推开」「禁止同视线重叠」三种。记录重叠事件和人自发的整理动作。
自变量:规则种类、面板数量、锁定方式是否混合。 因变量:视线方向上的重叠面积、被挡住的可读字比例、自发整理次数、完成时间。
这是信息界面的碰撞检测,不是物理刚体模拟——要看的是可读表面是否共线,不是包围盒是否相交。两块在几何上分离、在视网膜上仍完全重叠,对阅读来说算重叠。
边界
一块面板的单人短任务几乎撞不上重叠,规则会显得多余。游戏里故意让海报贴满墙是场景,不是可读 UI。完全由用户手动摆放、并且摆放就是任务(布置展板)时,规则会变成碍手,应可关闭。自动推开若没有过渡,会像面板自己活了,和对象持续性打架。多人共享时,一个人的规则推开会变成对另一个人的突然位移,规则必须是共享的或只推私有层。
怎么落地
- 给可读面板写一条最小角间距:小于该间距就推开或改到并排,不要静默重叠。
- 混合锁定时,随身层不要停在世界层的正前方;跟随要带着避让,而不是只跟着身体走。
- 推开要有一段可见位移,并允许撤销,避免「板子自己跑了」。
- 验证:同时打开产品允许的最大面板数,沿主视线看。若两块可读正文叠在同一团张角里且没有被规则拆开,排版引擎的缺席就还没被规则补上。