GWT - 隐藏水平滚动条

use*_*704 5 css gwt

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

...关于CSS,我现在尝试为我的ScrollPane设置这样的样式

.a-scroll {
overflow-y: scroll;
overflow-x: hidden;
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢

And*_*olo 6

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

无论如何,我发现你要求的是一个已知的问题.

如果你想要总是隐藏水平滚动条,你需要overflow-x: hidden在可滚动元素上设置属性ScrollPanel(正如你所尝试的那样,但是这样的面板不是一个带有overflow属性的简单div ).试试:

public class MyScrollPanel extends ScrollPanel {

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

请记住,如果您设置上述内容,在某些浏览器中您将无法再水平滚动.也是overflow-x/yCSS3属性,而overflowCSS2.所以这可能不是你想要的.

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

另一种选择可能是使用CustomScrollPanel小部件,其中允许通过提供具有零不透明样式的自定义滚动条(不是最好的,很难)来隐藏滚动条等.

当然,另一种选择可能是推出你自己的基于div的小部件(可能扩展SimplePanel),你需要所有你需要的样式,如问题所示.