我在GWT中使用了TabLayoutPanel,我希望最后一个标签显示在页面的右侧。是否有可能做到这一点?TabLayoutPanel将标签右对齐
2
A
回答
-1
这是可能的,并且将是非常容易的,如果你创建自己的标签。只需创建一个标签形状的png图像(这是在顶部圆角)。写一个css规则。取一个FlextTable并将该CSS应用于每个单元格将成为您的选项卡,然后将该FlexTable添加到另一个mainTable中。因此,在第一行的mainTable中,将会有tabFlexTable和第二行,无论您想在选择特定选项卡后显示什么内容,都可以在第一行应用水平对齐。这种方式和方式我也用于我的专业项目。
0
短回答 -
我在GWT 2.3和AFAIK上钻取了源代码,它比TabBar
和StackLayoutPanel
更容易构建您自己的复合材料,而不是开始对抗此实现。
只是为了节省您的努力,它也不能轻松居中。 对不起,它是这样的。
这一切的硬编码...
private static final int BIG_ENOUGH_TO_NOT_WRAP = 16384;
private final FlowPanel tabBar = new FlowPanel();
...
tabBar.getElement().getStyle().setWidth(BIG_ENOUGH_TO_NOT_WRAP, Unit.PX);
3
共同的想法:
- 组标签容器宽度的预定义的 “16384px”,而不是 “自动”
- 集 “浮动:权利” 的CSS财产到最后一个选项卡
将最后一个选项卡移动到firts位置
public void onModuleLoad() { ..... // init TabLayoutPanel ..... Widget rightTab = tabPanel.getTabWidget(0).getParent(); DOM.setStyleAttribute(rightTab.getElement(), "float", "right"); Widget tabBar = rightTab.getParent(); tabBar.setWidth("auto"); tabPanel.selectTab(1); }
0
为什么不是纯粹的CSS解决方案?将代码与设计分开是很好的做法。
.gwt-TabLayoutPanelTabs {
width: auto!important;
}
.gwt-TabLayoutPanelTab {
float: right;
}
请记住,你的标签会以相反的顺序(先加入将右一)
1
如果要对齐所有标签向右试试这个:
.gwt-TabBar .gwt-TabBarFirst {
width: 100%;
}
.gwt-TabBar .gwt-TabBarRest {
width: 4px;
}
.gwt-TabBar .gwt-TabBarFirst-wrapper {
width: 100%;
}
相关问题
- 1. WinForms:右对齐标签自动大小
- 2. 选择标签的选项右对齐
- 3. 聚合物 - 右对齐纸张标签
- 4. 对齐一组标签的右侧
- 5. 如何在SemanticUI中将标签对齐到标题的右侧
- 6. 如何让一些标签左对齐,其他标签右对齐? (TabControl在wpf)
- 7. JavaFX多行标签右对齐换行符对齐
- 8. 将hr标签和img标签对齐
- 9. TabLayoutPanel禁用标签GWT
- 10. 如何将标签对齐到样式复选框的右侧
- 11. 标签对齐
- 12. GridBagLayout对齐标签
- 13. 对齐span标签
- 14. 标签左对齐
- 15. 将Eclipse右对齐RCP coolbar
- 16. 右对齐和垂直对齐带复选框/单选按钮的标签CSS
- 17. 想要将时间戳添加到中心将textview与调整标签对齐到右对齐
- 18. 如何将多个div标签对齐
- 19. 如何将轴标签对齐
- 20. 将列表与标签对齐
- 21. 左右对齐
- 22. 右对齐
- 23. 右对齐流
- 24. VBA右对齐
- 25. NSNumberFormatter右对齐
- 26. 在div标签内右对齐菜单控件
- 27. 以编程方式创建的标签不会右对齐
- 28. 带多边形的右对齐参考标签
- 29. 如何来包装标签,并给他们留下右对齐
- 30. 正确右对齐一个切换及其标签
谢谢。这对我工作.. :)。但我的主页中有两个标签面板。我希望一个应该对齐,但第二个应该对齐默认(左)。这是可能的,因为gwt对每个组件都有自己的CSS元素? – 2015-05-30 03:18:15