2013-04-29 127 views
5

我想知道...有没有办法隐藏GWT标准的水平滚动条ScrollPane我的意思是可能不使用外部CSS样式等?或者你可以推荐一个更优化的方式来达到效果?GWT - 隐藏水平滚动条

...而关于CSS,现在我尝试设置这样的风格对我的ScrollPane

.a-scroll { 
overflow-y: scroll; 
overflow-x: hidden; 
} 

...但似乎不起作用,水平滚动条仍然可见:S那么是否有解决方法?

感谢

+0

你对*始终*隐藏水平滚动条感兴趣吗? – 2013-04-30 08:59:53

+0

@Andrea Boscolo你是对的。我想隐藏水平,但只有垂直显示; – user592704 2013-04-30 17:11:27

+0

当你设置该风格时,你是在代码中为它设置一个名称,以便它能够拾取CSS类'.a-scroll'? – 2013-05-01 17:54:48

回答

6

默认情况下,ScrollPaneloverflow属性设置为auto(即滚动条将根据需要显示)以获得最多的跨浏览器解决方案。所以,由浏览器决定何时显示这样的滚动条。另外,由于在施工时已经被调用(在initialize()方法中),因此调用scrollPanel.setAlwaysShowScrollBars(false)是无用的。

无论如何,我发现你要求的是known issue

如果你想总是隐藏你需要设置ScrollPanel的滚动元件上的overflow-x: hidden财产水平滚动条(你尝试过,但这种面板并不是一个简单的分度,它的overflow属性)。试着用:

public class MyScrollPanel extends ScrollPanel { 

    public void setAlwaysHideHorizontalScrollBar(boolean alwaysHide) { 
    getScrollableElement().getStyle().setOverflowX(alwaysHide ? Overflow.HIDDEN : Overflow.AUTO); 
    } 
    // ... and the like. 
} 

记住,如果你设置以上,在某些浏览器,你将无法再水平滚动。另外overflow-x/y是CSS3属性,而overflow是CSS2。所以这可能不是你所追求的。

在这种情况下,一些CSS技巧可以帮助隐藏滚动条,但仍然允许滚动,如this

Anothe选项可以使用CustomScrollPanel小部件,该小部件允许通过提供具有零不透明风格的自定义滚动条(不是最好的东西,难熬)来隐藏滚动条。正如问题中提出的,当然,另一种选择可能是推出自己的基于div的小部件(可能会扩展SimplePanel),并提供所需的所有样式。

+0

好的,谢谢。我稍后尝试解决方案并向您报告我的结果 – user592704 2013-05-06 16:33:31

+0

我试过这个解决方案。它工作正常:)谢谢 – user592704 2013-05-15 18:32:59

0

可以隐藏滚动条,如果内容不溢出使用

scrollPanel.setAlwaysShowScrollBars(false);

如果你的滚动条仍然显示你可能想看看你的内容的容器。

+0

不,我想要支持overflow-y只能垂直滚动它 – user592704 2013-04-30 17:10:27

0

可能有点便宜,但竖线宽度被添加到窗口小部件的宽度,这意味着窗口部件不再显示完整。因此,显示的水平条可以滚动查看通过垂直滚动条隐藏的内容。

如果你去

scrollPanel.setAlwaysShowScrollBars(false); 
scrollPanel.setWidth("normalwidth + 8px"); 

应该停止显示。