上一篇flutter tv开发之按键消息分发机制(上)说到,flutter基本控件自身是不支持按键操作的,我们需要找到一个支持按键交互的控件来装饰我们的基本组件,那就是RawKeyboardListener
绘制的控件只有被这个控件包裹,控件才支持按键事件。实例化该对象时,有3个参数是必须要传的:
-
focusNode
控制该控件是否有焦点,要使控件获取焦点,可以这样写:
FocusScope.of(context).requestFocus(focusNode);
-
onKey
控件按键事件回调,该回调接口带一个参数,类型为RawKeyEvent,RawKeyEvent是一个抽象类,有一个抽象工厂方法,该方法接收android、ios和fuchsia等系统平台发送的按键数据,根据按键类型是KeyDown还是KeyUp,返回对应的继承该类的RawKeyDownEvent和RawKeyUpEvent子类对象。