我的代码:
List<ColumnConfig<Reminder, ?>> ccs = new LinkedList<ColumnConfig<Reminder, ?>>();
CheckBoxCell cbc = new CheckBoxCell();
ColumnConfig<Reminder,Boolean> applicableColumn = new ColumnConfig<Reminder,Boolean>(properties.applicable(),100,"Applicable");
applicableColumn.setCell(cbc);
applicableColumn.setAlignment(HasHorizontalAlignment.ALIGN_CENTER);
这不起作用。
答案 0 :(得分:2)
我意识到这个答案对你的目的来说可能为时已晚,但它可能有助于某人寻找同样的问题。这是我使用的代码:
private void centerCheckBox(final ColumnConfig<Pet, ?> columnConfig) {
final int leftPadding = (columnConfig.getWidth() - 12) / 2;
final String styles = "padding: 3px 0px 0px " + leftPadding + "px;";
final SafeStyles textStyles = SafeStylesUtils.fromTrustedString(styles);
columnConfig.setColumnTextStyle(textStyles);
}
除了在创建ColumnConfig
后为每个复选框调用此方法之外,我还为ColumnWidthChange
事件处理程序中的每个复选框列调用它(事件处理程序已添加到ColumnModel
})。这是我的列宽更改处理程序的代码(注意:我在创建ColumnConfig
实例时将每个复选框列配置添加到一个集合中):
columnModel.addColumnWidthChangeHandler(new ColumnWidthChangeHandler() {
@Override
public void onColumnWidthChange(final ColumnWidthChangeEvent event) {
final ColumnConfig<Pet, ?> petColumnConfig = columnConfigList.get(event.getIndex());
if (_checkBoxSet.contains(petColumnConfig)) {
centerCheckBox(petColumnConfig);
_grid.getView().refresh(true);
}
}
});