我有一个CellWidget
( EditTextCell
),我想通过代码手动设置特定值。但是当我使用以下代码时,UI 没有更新?我错过了什么?
@UiField(provided = true)
CellWidget<String> cell;
cell.setValue(text, true);
cell.redraw();
我不是 100% 确定你想在这里做什么。您是否尝试更新 a 中的特定单元格CellTable
?在这种情况下,我不确定您的解决方案是否有效。如果您只想刷新表中的数据,那么您应该使用 a DataProvider
,然后只需更改它,UI 也应该更改。如果您希望表格响应用户事件(例如单击单元格),则应该考虑处理 Cell 事件。
为了回答我自己的问题,我找到了一种解决方法:
((EditTextCell) cell.getCell()).clearViewData(KEY_PROVIDER.getKey(text));
cell.getCell().setValue(new Context(0, 0, KEY_PROVIDER.getKey(text)), cell.getElement(), text);
cell.setValue(text, true, true);
不知道这是否是在单个 cellwidget 文本单元上强制更新的正确方法,但至少它有效。