有没有办法让DockLayoutPanel在UiBinder模板中支持从右到左的语言?

时间:2014-05-21 05:39:23

标签: gwt internationalization uibinder

考虑在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模板并链接该版本,具体取决于区域设置是否为从右到左,但我更倾向于使用一个适用于两个方向的模板。

1 个答案:

答案 0 :(得分: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开始,当您开始键入lineStart时,自动完成功能不会显示lineEnd<g:。仅显示g:westg:eastg:northg:south。但是,这并不意味着可以使用其他标签。有关详细信息,请参阅this GWT issue