2

在下面的例子中,当FlatButton被点击时,触摸事件也被传播到InkWell,显示波纹。有没有办法禁用这种行为?因此,如果触摸被子小部件消耗,它不会到达小部件的父级?

InkWell(
      onTap: () {},
      child: Row(
        children: <Widget>[
          Text("Dummy text"),
          FlatButton(onPressed: () {}, child: Text("Button"))
        ],
      ),
    );
4

2 回答 2

0

该事件未到达父小部件。默认情况下,扁平按钮具有那种涟漪效应。您可以禁用它,将 FlatButton 的 splashColor 设置为透明。InkWell 也可以做同样的事情。

像这样

InkWell(
      splashColor: Colors.transparent,
      highlightColor: Colors.transparent,
      onTap: () {},
      child: Row(
        children: <Widget>[
          Text("Dummy text"),
          FlatButton(
           splashColor: Colors.transparent,
           onPressed: () {}, child: Text("Button"))
        ],
      ),
);
于 2019-11-13T20:58:59.677 回答
0

我知道这有点太晚了,但如果有人正在寻找正确的答案。这里是。

InkWell(
  onTap: () {},
  child: Row(
    children: <Widget>[
      Text("Dummy text"),
      FlatButton(onPressed: () {
        FocusScope.of(context).requestFocus();
      }, child: Text("Button")),
    ],
  ),
);

FocusScope.of(context).requestFocus() 将使按钮请求焦点,因此 InkWell 不会显示涟漪。

于 2020-04-17T12:44:23.673 回答