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