gpt4 book ai didi

java - 如何设置 GWT DataGrid 滚动条的样式

转载 作者:行者123 更新时间:2023-11-30 11:18:01 25 4
gpt4 key购买 nike

覆盖 GWT DataGrid 滚动条样式的正确方法是什么?更具体地说,我想要一个恒定的不透明度 1.0,而不是默认的过渡效果。

似乎无法将自定义资源传递给 DataGrid 中使用的 CustomScrollPanel,默认情况下 CustomScrollPanel 为其滚动条设置默认透明资源。

我已经尝试过以下方法:

  • 调用 setHorizo​​ntalScrollbar/setVerticalScrollbar 设置新的滚动条。因为我无法访问 DataGrid 中的 CustomScrollPanel 属性 (tableDataScroller),所以这不起作用。

  • 将 NativeHorizo​​ntalScrollbar.Style 和 NativeVerticalScrollbar.Style 添加到我的 CssResource 并在 css 中覆盖 nativeHorizo​​ntalScrollbarStyle 和 nativeVerticalScrollbarStyle。没有办法传递资源,这似乎行不通。

  • 使用::-webkit-scrollbar 选择器和 friend 覆盖浏览器滚动条样式。虽然这适用于我的 UI 中的其他滚动条,并且对于某些 DataGrid 滚动条属性,不透明度过渡效果仍然存在。

最佳答案

选项 1 通常是可行的方法(或者至少应该如何使用 CssResource 注入(inject)来覆盖小部件样式)。不幸的是,正如您所猜测的那样,DataGrid 没有公开其内部的 CustomScrollPanel(请参阅相关的 issue)。

按照问题中的建议扩展 DataGrid 以公开其内部 CustomScrollPanel。这样你就可以用你想要的任何东西替换滚动条样式(和/或滚动条本身)(使用 setHorizo​​ntalScrollbar()/setVerticalScrollbar())。

public class EnhancedDataGrid extends DataGrid {

/**
* Expose the inner CustomScrollPanel.
*/
public CustomScrollPanel getScrollPanel() {
HeaderPanel headerPanel = (HeaderPanel) getWidget();
return (CustomScrollPanel) headerPanel.getContentWidget();
}
}

或者您可以决定让它实现 HasScrolling 以公开 ScrollPanel 的滚动契约的所有方法(这将简单地委托(delegate)给 getScrollPanel( ) 方法).

关于java - 如何设置 GWT DataGrid 滚动条的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24036146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com