未调用CellList render()中的java GWT自定义单元格
我很难弄清楚为什么没有调用我的render方法。这是我的自定义单元格,它扩展了AbstractCell,分解为最简单的形式
public class FormHistoryCell<T> extends AbstractCell<T> {
@Override
public void render(com.google.gwt.cell.client.Cell.Context context, T value, SafeHtmlBuilder sb) {
System.out.println("Rendering customer cell...");
if (value == null) {
return;
}
}
}
下面是我代码中的snipet,它创建了一个“FormHistoryCell”实例,并试图将其添加到单元格列表中
@UiFactory
CellList<FormHistoryCell> initList() {
FormHistoryCell formHistoryCell = new FormHistoryCell();
CellList historyList = new CellList<FormHistoryCell>(formHistoryCell);
return historyList;
}
我尝试过不同的方法,比如添加一个接受字符串参数的构造函数,等等。调用了构造函数,但没有调用render方法。查看它扩展的抽象类,似乎render方法是在“setValue”方法中调用的,但没有看到在其他自定义单元扩展中调用该方法的位置,这些自定义单元扩展的render方法似乎得到了很好的调用。我肯定我错过了一些明显的东西,但我不知道是什么。请帮忙
# 1 楼答案
根据您提供的代码,浏览器没有理由调用单元格的
render
方法。您只需将对对象FormHistoryCell的引用传递到CellList。只有当浏览器必须显示单元格及其内容时,才需要render
方法。正如@outellou所建议的,当你向手机列表中添加数据时,就会发生这种情况