有人可以给我一个暗示,因为我被困了。我还没有找到解决问题的合适方案。
我有一个Grid
,有1-3行。我点击了行 - >该行已被选中。
我希望在点击其他地方(在此行之外)但在网格内部之后取消选择此行。
这是一个简单的截图,可以帮助您更好地浏览它。
我应该为这种情况使用什么样的听众?我试过ItemClickListener
- >没有帮助。
答案 0 :(得分:1)
尝试将网格放在单独的布局中并向其添加LayoutClickListener
:
gridLayout.addLayoutClickListener(new LayoutEvents.LayoutClickListener() {
@Override
public void layoutClick(LayoutEvents.LayoutClickEvent event) {
if(grid.getSelectedRow() != null) {
grid.deselectAll();
}
}
});
答案 1 :(得分:0)
gridLayout.asSingleSelect().addSelectionListener(e->{
if(e.getFirstSelectedItem().isPresent()) {
system.out.println("selected");
}else {
// when deselected make some actions here
system.out.println("deSelected");
}
});
选择: 如果您第一次单击同一行数据,则将打印 选定的 ,因为您单击的内容中存在值。
取消选择: 现在尝试第二次单击相同的选定行,它将进入取消选择模式。由于取消选择时没有值。现在无需单击网格上的任何位置,您可以单击同一行数据两次以进行选择和取消选择。