Dart 如何使用材质涟漪创建类似按钮的组件?

Dart 如何使用材质涟漪创建类似按钮的组件?,dart,angular-dart,Dart,Angular Dart,我想用ripple动画创建一个类似按钮的组件,它如下所示: <div>Button</div> <material-ripple></material-ripple> 按钮 在过去,这很好用,因为当我单击这个自定义元素时,我实际上单击了材质涟漪,并且单击事件将冒泡到主体元素 对于角_组件0.5.1,材质波纹显示按键上的中心波纹。这与单击不同,因为事件目标是主体元素本身,而不是ripple组件 是否有一种方法可以将按键事件传递到材质ripple

我想用ripple动画创建一个类似按钮的组件,它如下所示:

<div>Button</div> 
<material-ripple></material-ripple>
按钮
在过去,这很好用,因为当我单击这个自定义元素时,我实际上单击了
材质涟漪
,并且单击事件将冒泡到主体元素

对于角_组件0.5.1,
材质波纹
显示按键上的中心波纹。这与单击不同,因为事件目标是主体元素本身,而不是ripple组件


是否有一种方法可以将按键事件传递到
材质ripple
,以便播放ripple动画?或者有没有一种方法可以通过编程来播放动画?

经过一些研究,我想出了一个使用dart:html的解决方案

@ViewChild(MaterialRippleComponent, read: ElementRef)
ElementRef materialRipple;

@HostListener('keydown', const [r'$event'])
void passKeyDown(KeyboardEvent event) {
  (materialRipple.nativeElement as HtmlElement).dispatchEvent(
      new KeyEvent('keydown', keyCode: event.keyCode, canBubble: false)
          .wrapped);
}
尽管由于KeyEvent和KeyboardEvent存在一些bug,这在Dartium中不起作用,但在Chrome中效果很好