【问题标题】:Is there a way to make DockLayoutPanel support right-to-left languages in a UiBinder template?有没有办法让 DockLayoutPanel 在 UiBinder 模板中支持从右到左的语言?
【发布时间】:2014-05-21 05:39:22
【问题描述】:

考虑像这样在 UiBinder 中创建 DockLayoutPanel:

 <g:DockLayoutPanel unit='PX' >       
   <g:west size='100'><g:Label>Start</g:Label></g:west>
   <g:east size="100"><g:Label>End</g:Label></g:east>
   <g:center><g:Label>Center</g:Label></g:center>
</g:DockLayoutPanel>

使用英语等语言环境时,start 会正确显示在左侧。当区域设置是从右到左 (RTL) 语言时,start 应该出现在右侧,但它不会。

在 Java 代码中,可以分别使用 DockLayoutPanel.addLineStartDockLayoutPanel.addLineEnd 代替 DockLayoutPanel.addWestDockLayoutPanel.addEast。这会根据语言环境将元素放置在适当的位置。 有没有办法用 UiBinder 达到同样的效果?

请注意,也可以使用替代 RTL UiBinder 模板并根据语言环境是否为从右到左链接该版本,但我更希望有一个适用于两个方向的模板。

【问题讨论】:

    标签: gwt internationalization uibinder


    【解决方案1】:

    完全可以在 UiBinder 的 DockLayoutPanel 中使用 lineStartlineEnd。从本质上讲,UiBinder 能够像调用自定义小部件上的方法一样调用这些方法。

    下面是应该在 UiBinder 中使用的代码:

     <g:DockLayoutPanel unit='PX'>       
       <g:lineStart size='100'><g:Label>Start</g:Label></g:lineStart>
       <g:lineEnd size="100"><g:Label>End</g:Label></g:lineEnd>
       <g:center><g:Label>Center</g:Label></g:center>
    </g:DockLayoutPanel>
    

    请注意,从 2.6 版开始,当您开始输入 &lt;g: 时,自动完成不会显示 lineStartlineEnd。仅显示 g:westg:eastg:northg:south。但是,这并不意味着可以使用其他标签。更多信息请参考this GWT issue

    【讨论】:

    猜你喜欢
    • 2015-10-07
    • 2011-09-19
    • 2022-12-05
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多