在GWT中,我使用的是CellTable。
当您将鼠标悬停在CellTable上时,它会突出显示每一行。
如何更改鼠标突出显示的行为?具体做法是:
(目前的黑客攻击是创建一堆1列宽的CellTables并将它们添加到VerticalPanel布局......创建一个幻觉,即有一个CellTable并根据光标突出显示每个网格。这不好吗?为什么?表现?)
答案 0 :(得分:17)
你会注意到CellTable使用了ResourceBundle,这意味着所有的css样式都会被混淆......这使得覆盖样式变得更加困难。
CellTable构造函数实际上允许您覆盖默认的ResourceBundle。首先,您需要创建自己的资源包,如下所示:
public interface CellTableResources extends Resources {
public CellTableResources INSTANCE =
GWT.create(CellTableResources.class);
/**
* The styles used in this widget.
*/
@Source("CellTable.css")
CellTable.Style cellTableStyle();
}
然后你需要创建自己的CSS文件。我建议将CellTable样式直接复制到项目中,并将其作为起点。你可以在这里找到它: http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/cellview/client/CellTable.css
确保首先注入样式,然后将它只是这样输入CellTable的构造函数:
CellTableResources.INSTANCE.cellTableStyle().ensureInjected();
myCellTable = new CellTable<T>(Integer.MAX_VALUE,CellTableResources.INSTANCE);
具体来说,您需要调整这些样式:
重要的是要注意,单元格表区分“选定行”和“键盘选定行”。所选行是选定的实际行(即通过SelectionModel)。键盘选定行指的是当用户按下向上/向下键时突出显示的内容,但并不意味着该行实际被选中(如果这是有意义的话)。
答案 1 :(得分:4)
我只会在你的列表中添加2号),你可以简单地做
cellList.setSkipRowHoverStyleUpdate(true)
完全禁用突出显示。在CellList上还有两个与{hovering相关的setSkip
函数。
答案 2 :(得分:1)
CellTable可以通过CSS设置样式:How do I style a gwt 2.1 CellTables headers?
要禁用突出显示,只需将悬停CSS属性设置为空。
可能 - 尝试调整.cellTableSelectedRow
和.cellTableSelectedRowCell
。
这是原始的CellTable.css:http://www.google.com/codesearch/p?hl=en#A1edwVHBClQ/user/src/com/google/gwt/user/cellview/client/CellTable.css&q=cellTableLastColumn&d=8