使用Vaddin的RTL支持14

时间:2019-09-29 12:28:30

标签: java spring-boot vaadin vaadin8

我试图在希伯来语中构建Web应用程序。 但所有组件或导航栏均为LTR。 如何使NavBar或我的所有站点成为RTL?

另一个问题,我可以更改导航栏的样式吗?

@Viewport("width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes, viewport-fit=cover")
@Theme(Lumo.class)
@Route
@PWA(name = "SimpleIT", shortName = "SimpeIT")
public class MainView extends AppLayout {
    public static final String ITM_DASHBOARD = "DashBoard";
    private Map<Tab, Component> tab2Workspace = new HashMap<>();

    public MainView() {
       // setPrimarySection(Section.DRAWER);
        Image img = new Image("https://i.imgur" +
                ".com/GPpnszs.png", "Vaadin Logo");
        img.setHeight("75px");
        addToNavbar(new MenuBar(), img);
    Tabs menu = new Tabs(dashBoard()
            ,new Tab("Customers"),new Tab("Todo"),new Tab("Tickets"));
    menu.setOrientation(Tabs.Orientation.HORIZONTAL);
        menu.addSelectedChangeListener(event -> {
            final Tab selectedTab = event.getSelectedTab();
            final Component component = tab2Workspace.get(selectedTab);
            setContent(component);
        });

        addToNavbar(menu);
        this.setPrimarySection(Section.NAVBAR);
        setContent(new Span("click in the menu ;-) , you will see me never again.."));





    }

    private Tab dashBoard() {
        final Span label = new Span("DashBoard");
        final Icon icon  = DASHBOARD.create();
        final Tab  tab   = new Tab(new HorizontalLayout(icon,label));
        tab2Workspace.put(tab, new DashBoardView());
        return tab;

    }
}

2 个答案:

答案 0 :(得分:1)

您可以通过向主体添加CSS规则direction:rtl来启用RTL。或者,您可以使用为您执行此操作的RTL模式加载项:https://vaadin.com/directory/component/rtl-mode/discussions

许多组件都在RTL模式下工作,但是有些仍然存在一些问题。有望在2020年上半年解决这些问题。

答案 1 :(得分:0)

更新的信息:自Vaadin 14.3(LTS)和Vaadin 17:https://vaadin.com/blog/localization-gets-an-update-with-right-to-left-rtl-support

以来,正式支持RTL。