如何使容器的填充可以点击?

Əli*_*ram 7 flutter

我希望能够单击 GestureDetector 小部件周围的填充并触发它的 onTap 方法。我不想改变图标本身的大小。这是到目前为止的代码。

class InfoButton extends StatelessWidget {
  final String text;
  final double padding;
  static const double defaultPadding = 5;

  const InfoButton({Key key, @required this.text, this.padding = defaultPadding}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.all(padding),
      decoration: BoxDecoration(border: Border.all()),
      child: GestureDetector(
        child: Icon(
          Icons.info_outline,
          color: Colors.blue,
          size: 20,
        ),
        onTap: () {
          print('clicked');
        },
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

我如何在颤振中实现这一目标?

Kee*_*ani 13

只是包括Container为孩子GestureDetector,而不是Icon和集behavior的属性GestureDetector,以HitTestBehavior.opaque这样的

   Widget build(BuildContext context) {
       return GestureDetector(
             behavior: HitTestBehavior.opaque,
                  onTap: () {
                    print('clicked');
                  },
              child : Container(
                padding: EdgeInsets.all(padding),
                decoration: BoxDecoration(border: Border.all()),
                  child: Icon(
                    Icons.info_outline,
                    color: Colors.blue,
                    size: 20,
                  )
                ),
              );
            }
Run Code Online (Sandbox Code Playgroud)

  • 我实际上需要在代码中将 GestureDetector 的行为字段设置为 HitTestBehavior.opaque 才能按预期工作 (4认同)