首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将按钮传递给另一个类,并在按下按钮时执行操作?

如何将按钮传递给另一个类,并在按下按钮时执行操作?
EN

Stack Overflow用户
提问于 2022-05-24 06:19:54
回答 2查看 217关注 0票数 1

我有一个名为ApiWidget的类,它接受一个child,这个子类将包含onPressed,例如,一个ElevatedButton

我想在这个类中显示这个onPressed类型的子小部件,但是我想在按下该按钮时执行一些操作。我怎么能这么做?我认为provider在这里不合适。

换句话说,我只想使用子按钮(用于外观),但我只想在这个类中执行操作。

代码语言:javascript
运行
复制
class ApiWidget extends StatelessWidget {
  final Widget child;

  ApiWidget(this.child);

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {}, // I want to perform some operation here when this child is pressed.
      child: child,
    );
  }
}
EN

回答 2

Stack Overflow用户

发布于 2022-05-24 06:33:29

您可以获得onPresseddataType Function。示例:

代码语言:javascript
运行
复制
import 'package:flutter/material.dart';

class GradientButtonWidget extends StatelessWidget {
  final String title;
  final VoidCallback onPress;

  GradientButtonWidget({
required this.title,
required this.onPress,
});

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
        onPressed: onTap,
        child: FittedBox(
          child: Text(title),
        ),
      );
  }
}

您编写的代码如下所示:

代码语言:javascript
运行
复制
class ApiWidget extends StatelessWidget {
  final Widget child;
  final VoidCallback onPress;

  ApiWidget({
required this.child,
required this.onPress,
});

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: onPress, //This is how it is called
      child: child,
    );
  }
}
票数 0
EN

Stack Overflow用户

发布于 2022-05-24 07:53:27

最简单的解决方案是将child封装在AbsorbPointerIgnorePointer小部件中。这样做将忽略按钮的onPressed,您可以在该类中自由地执行逻辑。

如果还希望确保按钮接收到onPressed事件,则可以在onTap回调中执行(child as ElevatedButton).onPressed?.call()

代码语言:javascript
运行
复制
GestureDetector(
  onTap: () {
    // Perform your operation...
  },
  child: AbsorbPointer(
    child: child, // Your passed button 
  ),
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72358036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档