我正在使用 TLF 来布置字典条目。它工作得相当好,但我需要对布局进行更精细的控制,而不是通过在 FlowElements 上设置样式属性来实现,主要用于水平间距和在 SpanElements 上独立于其父项设置填充。
似乎最有希望的解决方案是将条目的各种元素分离到单独的容器中,并通过逐步为每个新元素添加新容器和 ContainerControllers 并将其大小设置为内容边界,从而使文本流过它们,以便文本流入每个新元素容器。
这几乎可以工作,但是如果在应该转到不同容器的两个文本部分之间插入额外的换行符,则文本只会正确流入下一个容器。如果没有换行符,容器的大小会正确,但不会显示任何文本。
在这些示例中,我为容器精灵添加了边框,以便您可以看到它们被绘制的位置。除了换行符之外,文本完全相同。音节字段是 ParagraphElement 中的 SpanElement。发音标签和文本是另一个 ParagraphElement 中的独立 SpanElement。
没有换行符:
'rab-bit' 和 'Sounds Like:' 之间有换行符:
在 'rae biht' 之后使用换行符(事先换行无效):
如您所见,除非在文本后添加换行符,否则不会显示发音,但随后会关闭对齐。换行符的组合似乎无法正确对齐它们。
有任何想法吗?这些是 TLF 中的错误吗?我应该尝试不同的方法吗?我真的很想将所有文本作为一个单元进行选择,我喜欢 TLF 提供的更好的渲染和控制,但我还需要布局灵活性。我想我可以用换行符和定位偏移来破解这样的东西,但它肯定不会漂亮(或可维护)。谢谢阅读。