在应用程序中有一个包含Nattable的视图。
在该表中,当我使用过滤器搜索字符串并且只剩下一行时,如果然后更改列宽,则所有列都会更改宽度。
我在其中一个论坛中读到了因为该行被选中所以所有列都将被调整大小。
请让我知道如何解决。
感谢。
答案 0 :(得分:0)
第一个问题,如果您在NatTable论坛上阅读有关此主题的内容,为什么然后在Stackoverflow上提出问题而不是写入论坛?
第二个问题,为什么选择该行?我不知道有任何功能会在过滤时选择一行。
我认为您调整所选列的所有列的常见行为,如果您只有一行并且选择了该行,则表示所有列都已完全选中。所以恕我直言,这是正确的行为。更改此选项的唯一方法是覆盖SelectionLayer#handleColumnResizeCommand以禁用多列调整大小功能。目前没有修改该行为的选项。
您还可以打开增强票证以获得NatTable中包含的此类选项并提供补丁。
答案 1 :(得分:-1)
我发现Dirk的答案不是真的有效。
我认为身体行/细胞的选择与标头区域的选择无关。所有列的选择(例如,通过选择标题为矩形的列)与选择数据行完全不同。
但是,我发现了一个快速修复程序,可以很容易地关闭所有的多隐藏,-调整大小和-清除功能。这可能有点脏,但这对我有帮助:
class MySelectionLayer extends SelectionLayer {
public MySelectionLayer(IUniqueIndexLayer underlyingLayer) {
super(underlyingLayer);
}
@Override
public boolean isColumnPositionFullySelected(int columnPosition) {
return false;
}
}