2017-08-24 30 views
1

我想让我的MaterialHeader和MaterialNavBar布局到页面的左侧。设置paddlingLeft(0)什么都不做。无论paddingLeft设置为什么,GWT Material Design将始终将paddingLeft设置为边Nav的宽度。我试图让导航栏从左向右延伸,导航栏下面有SideNav。MaterialHeader paddingLeft不能设置

header = new MaterialHeader(); 
    header.setPaddingLeft(0); 
    MaterialNavBar b = new MaterialNavBar(); 
    b.setActivates("sideNav1"); 
    MaterialSideNav sideNavBar = new MaterialSideNav(SideNavType.FIXED); 
    sideNavBar.setWidth(280); 
    sideNavBar.setTop(64); 
    sideNavBar.setId("sideNav1"); 
    sideNavBar.setAlwaysShowActivator(true); 
    sideNavBar.setShowOnAttach(true); 
    header.add(navBar); 
    header.add(sideNav); 

运行此代码时,导航栏始终向右移动280像素。标题html元素的填充左值为280,而不是零。

检查html会显示带有padding-left = 280px的标题。这与我将Side Nav设置为的宽度相同。

我做错了什么? 感谢

+0

您的'MaterialNavBar'被命名为“b”,但是您在'header.add(navBar);'中使用了'navBar'。这是一个错字吗? – brian17han

回答

1

为了把MaterialSideNav顶部MaterialNavBar下,你必须选择一个SideNavType它实现HasWithHeader接口。看起来最适合您的需求是​​(SideNavType.PUSH_WITH_HEADER)。这里是GMD source codedemo


据GMD的源代码,您应该MaterialSideNav不住的MaterialHeader内。

+0

谢谢你是对的。 GMD的视频给我带来了错误的方向。他们可能需要更新。再次感谢。 –

0

从版本2开始,我们将SideNav类型分为不同的类,以便更好地实现。

因此,作为@ brian17han建议是正确的,但需要的是升级到v2,这里是一个示例代码

<m:MaterialSideNavPush withHeader="true" ... /> 

或Java

MaterialSideNavPush sidenav = new MaterialSideNavPush(); 
sidenav.setHeader(true); 

仅供参考,您可以检查所有类型的在这里 https://gwtmaterialdesign.github.io/gwt-material-demo/#sidenavs