当我在DataGrid
上启用键盘选择策略和多选择时,我遇到了这个问题。
案例1:通过鼠标和键盘进行多重选择
当我想通过鼠标选择多行时,我按住Ctrl
键或Shift
键,这工作得很好。默认通过键盘,此动作由spacebar
提供。当我想通过键盘组合shift
键和spacebar
键进行串行选择时,就可以实现。
案例2:通过鼠标和键盘进行单一选择(这就是问题开始的地方)
当我想通过鼠标选择单行时,我只需执行left click
。如果我不持有ctrl
或shift
键中的任何一个,并执行left click
,即使选择了多行,它也会被取消选择,只有当前行被选中。这是预期的行为,我对此没有任何问题。
但同样的事情是无法通过键盘实现的。
无法通过键盘选择单行。如果我按下spacebar
,一行被选中,如果我在没有shift/ctrl
键的其他行上再次按下spacebar
,它会被多次选中,之前选择的行不会被取消选中。
我的问题是:如何通过类似鼠标的键盘实现单次选择?
EDIT:我在gwt issue中打开了这个issue。我希望他们对此作出回应。
您必须使用自定义选择事件管理器,其转换器返回您希望从clearCurrentSelection
获得的行为的适当值。
默认行为是总是从键盘上添加/删除选择,并使用control或meta键来切换是否在使用鼠标时清除当前选择