Flutter 中的 PhysicalKey 和 LogicalKey 是用于处理键盘事件的类。
PhysicalKey 表示实际的键盘按键,对应系统中的按键码。例如,A 键的按键码是 0x41。PhysicalKey 是用于描述按键码和按键事件的物理特征。可以用 PhysicalKey 来处理按键事件的物理特点,比如按键位置和按键的种类。
LogicalKey 表示逻辑上的键盘按键,对应一个或多个 PhysicalKey。例如,Q、W、E、R、T 几个键可以都映射到 LOGICAL_KEY_A,这样即使用户使用不同键盘布局,这些按键也可以被正确识别和处理。可以用 LogicalKey 来处理按键事件的逻辑特点,比如按键映射和按键组合。
使用场景:
1.当需要处理按键事件时,可以使用 PhysicalKey 或 LogicalKey 来区分不同的按键。
2.当需要处理按键事件的组合时,比如 Ctrl+C、Ctrl+V,可以使用 LogicalKey。
3.当需要处理按键位置时,比如 WASD 键盘游戏,可以使用 PhysicalKey。
总之,PhysicalKey 和 LogicalKey 的区别在于它们处理的是按键事件的不同特点。在实际使用中,需要根据处理的具体场景选择合适的键盘事件处理类。