考虑在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.addLineStart或DockLayoutPanel.addLineEnd代替DockLayoutPanel.addWest和DockLayoutPanel.addEast。这会根据区域设置将元素放置在适当的位置。 有没有办法与UiBinder达到同样的效果?
请注意,也可以使用备用RTL UiBinder模板并链接该版本,具体取决于区域设置是否为从右到左,但我更倾向于使用一个适用于两个方向的模板。
答案 0 :(得分:1)
完全可以在UiBinder中的DockLayoutPanel中使用lineStart
和lineEnd
。从本质上讲,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:west
,g:east
,g:north
和g:south
。但是,这并不意味着可以使用其他标签。有关详细信息,请参阅this GWT issue。