首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让按钮的onPressed [它在一个单独的类中]返回值给父类?

要让按钮的onPressed返回值给父类,可以通过以下步骤实现:

  1. 创建一个回调函数:在父类中创建一个回调函数,用于接收按钮的返回值。这个回调函数的参数类型和返回值类型应与按钮的onPressed函数相匹配。
  2. 在父类中实例化子类:在父类中实例化一个子类对象,并将回调函数作为参数传递给子类的构造函数。
  3. 子类中调用回调函数:在子类中,将按钮的返回值传递给回调函数,并调用该回调函数。
  4. 在父类中处理返回值:在父类的回调函数中,处理按钮返回的值。

以下是一个示例代码:

代码语言:dart
复制
// 父类
class ParentClass {
  void onPressedCallback(String value) {
    // 处理按钮返回的值
    print('按钮返回的值:$value');
  }

  void createChildClass() {
    // 实例化子类,并将回调函数传递给子类
    ChildClass child = ChildClass(onPressedCallback);
    child.callOnPressed();
  }
}

// 子类
class ChildClass {
  final Function(String) onPressed;

  ChildClass(this.onPressed);

  void callOnPressed() {
    String value = '按钮被按下了';
    // 调用回调函数,并传递按钮返回的值
    onPressed(value);
  }
}

void main() {
  ParentClass parent = ParentClass();
  parent.createChildClass();
}

在上述示例中,按钮被按下后,子类会调用父类中的回调函数,并将按钮返回的值传递给该回调函数。父类中的回调函数可以对按钮返回的值进行处理,例如打印到控制台或进行其他操作。

请注意,上述示例中的代码是使用Dart语言编写的,但是这个概念在其他编程语言中也是适用的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如果没有无参构造方法(也即了带参构造方法),子类构造方法怎么办?

如果没有无参构造方法(也即了带参构造方法),子类构造方法怎么办? /* 如果没有无参构造方法(也即了带参构造方法),子类构造方法怎么办?   ...法1:子类构造方法通过 super(...); 去显示调用带参构造方法。   ...法2:子类构造方法通过 this();/this(...); 调用本类其他构造方法,但是子类其他构造方法中一定会有一个去访问了带参构造方法。   法3:提供无参构造。...;/super(...); 这三个语句访问子类或构造方法时候,必须放在第一句语句上。         否则,就可能会对数据进行多次初始化。 */ 示例代码如下图所示: ?

1.5K10

在DWR实现直接获取一个JAVA返回值

在DWR实现直接获取一个JAVA返回值     DWR是Ajax一个开源框架,可以很方便是实现调用远程Java。但是,DWR只能采用回调函数方法,在回调函数获取返回值,然后进行处理。...} } 上面这个很简单,里面的getString就直接返回一个字符串。...我们假设在DWR配置了Test在DWR中所对应未JTest,那么我们要调用getString方法,可以这样写: function Test() {     //调用JavaTestgetString...,然后在回调函数处理,上面那段话执行后会显示test,也就是java方法返回值。...现在,让我们打开DWRengine.js文件,搜索一个asyn,马上,就发现了一个setAsync方法,原来,DWR是这个方法设置成属性封装起来了。这样,我们就可以实现获取返回值功能了。

3.2K20

一个如何实现两个接口中同名同参数不同返回值函数

String类型,只是返回值一个是String一个是Int,现在我们要声明一个X,这个要同时实现这两个接口: public class X:IA,IB 由于接口中要求方法方法名和参数是一样...,所以不可能通过重载方式来解决,那么我们该如何同时实现这两个接口拉?...解决办法是把其中不能重载方法直接写成接口方法,同时要注意这个方法只能由接口调用,不能声明为Public类型.所以X定义如下: public class X:IA,IB {     public...IB.GetA(string a)//实现IB接口     {         Console.WriteLine("IB.GetA");         return 12;     } } 同样如果有更多同名同参不同返回值接口...,也可以通过"接口名.函数名"形式实现.

2.9K20

在 TypeScript 如何导入一个默认导出变量、函数或

在 TypeScript 如何导入一个默认导出变量、函数或?...在 TypeScript ,如果要导入一个默认导出变量、函数或,可以使用 import 关键字结合 default 关键字来引用默认导出成员。...如果默认导出一个变量或,使用方式类似: // file.ts export default class MyClass { // ... } typescript Copy // main.ts.../file'; const instance = new CustomClass(); // 创建默认导出实例 需要注意是,默认导出成员没有使用花括号 {} 包裹,而是直接赋值导入变量名...在 TypeScript 如何一个文件同时导出多个变量或函数? 在 TypeScript ,使用 export 关键字来同时导出多个变量或函数。有几种常见方式可以实现这一点。

59530

Java如何保证一个在内存对象唯一性

Java如何保证一个在内存对象唯一性,讲解如下: /** * 设计模式:对问题行之有效解决方式。其实它是一种思想。 1,单例设计模式。...解决问题:就是可以保证一个在内存对象唯一性。 对于多个程序使用同一个配置信息对象时,就需要保证该对象唯一性。 如何保证对象唯一性呢?...2,在该类创建一个本类实例。 3,对外提供一个方法其他程序可以获取该对象。 步骤: 1,私有化该类构造函数。 2,通过new在本类创建一个本类对象。...3,定义一个公有的方法,将创建对象返回。...Single() { } public static Single getInstance() { return s; } } // 懒汉式 class Single2 { // 加载进来

2.2K40

Java如何保证一个在内存对象唯一性

Java如何保证一个在内存对象唯一性,讲解如下: /** * 设计模式:对问题行之有效解决方式。其实它是一种思想。 1,单例设计模式。...解决问题:就是可以保证一个在内存对象唯一性。 对于多个程序使用同一个配置信息对象时,就需要保证该对象唯一性。 如何保证对象唯一性呢?...2,在该类创建一个本类实例。 3,对外提供一个方法其他程序可以获取该对象。 步骤: 1,私有化该类构造函数。 2,通过new在本类创建一个本类对象。...3,定义一个公有的方法,将创建对象返回。...Single() { } public static Single getInstance() { return s; } } // 懒汉式 class Single2 { // 加载进来

26410

Java 如何实现一个像 String 一样不可变

说到 String 大家都知道 String 是一个不可变;虽然用很多,那不知道小伙伴们有没有想过怎么样创建一个自己不可变呢?这篇文章阿粉就带大家来实践一下,创建一个自己不可变。...特性 在手动编写代码之前,我们先了解一下不可变都有哪些特性, 定义时候需要使用 final 关键字进行修饰:之所以使用 final 进行修饰是因为这样可以避免被其他继承,一旦有了子类继承就会破坏不可变性机制...这里我们定义一个 Teacher 来测试一下,按照我们上面提到几点,我们和属性定义都加上 final 代码如下所示。...为了解决这个问题,我们还需要对我们 Teacher 进行改造,首先我们可以想到就是需要将 students 和 metadata 两个成员变量不能直接返回外层,否则外层修改会直接影响到我们不可变...String 实现 前面我们看是自定义实现不可变操作,接下来我们简单看一下 String 如何实现不可变,通过源码我们可以看到 String 也使用了关键字 final 来避免被子类继承,

66320

【Flutter 专题】62 图解基本 Button 按钮小结 (二)

和尚继续尝试 Flutter 基本按钮;今天和尚学习 MaterialButton 系列相关 Button;该系列以 MaterialButton 为,衍生出 RaisedButton...this.child, }) 分析源码可知,MaterialButton 作为其他 Button ,各属性比较清晰明了,有 hight 属性可设置 Button 高度,其子类...和尚原来以为按钮子元素是 Widget,可自由设置各类效果,单独 textColor 是否会略显多余;可实际并非如此,子元素设置颜色等之后 textColor 不生效;但 textColor 与主题相关...使用 RaisedButton 时会自带阴影效果,阴影高度和高亮时阴影高度均可自由设置;但是阴影颜色应该如何处理呢,官方暂未提供阴影效果属性;和尚尝试了网上大神方式,RaisedButton 外层依赖带模糊阴影效果...Container;和尚借鉴并稍微调整一下,解决方案并非最佳,仅作尝试; 初始时定义一个默认高度 height 作为阴影高度,监听按钮 onHighlightChanged 方法更改

1.3K41

Flutter布局基础——页面导航和返回

代码SecondScreen添加了一个按钮,点击实现方法是Navigator.pop,用于返回;但是通常情况下,不需要专门实现Navigator.pop,因为在iOS,当使用了AppBar时候...,会自动在左上角添加返回按钮;而在安卓,使用系统返回按钮也可以直接返回。...:初始声明不同,具体使用不同; MySecondPage声明title属性是一个不可空String,使用了required修饰(这个地方要注意,是required而不是@required,有些文章没有更新...'Default PageName')), ), ); } } 效果如下: [pagecallback.gif] 注意上面按钮点击方法使用,单独封装了一个_pagePush方法...,并且使用async修饰,原因是Navigator.push返回值一个Future 类型,需要使用await,而await只能在async修饰方法中使用,如果写过ReactNative应该会熟悉这种写法

1.5K30

Flutter 组件集录 | 新一代 Button 按钮参上

按钮样式更改 如果稍微翻一下源码就可以看到,这三个按钮本质上是一样,都是 ButtonStyleButton 衍生。...按钮尺寸 在按钮默认样式,规定了最小尺寸是 Size(64, 36) , 最大尺寸无限。 也就是说,在级区域约束允许范围,按钮尺寸由 子组件 和 边距 确定。...即使它本身最小尺寸是 Size(64, 36),也不能违背约束: 所以,想要修改按钮尺寸,有两种方式: 从 子组件尺寸 边距 入手,调整按钮尺寸。 为按钮施加 紧约束 ,锁死按钮尺寸。...简看 ButtonStyleButton 组件源码实现 首先,ButtonStyleButton 是一个抽象,其继承自 StatefulWidget, 说明其需要依赖状态实现内部变化。...在 createState 方法返回 _ButtonStyleState 状态对象,说明按钮构建逻辑在该状态: @override State createState

2.1K10

组合与自绘,我该选用何种方式自定义Widget?

比如,在新闻应用,我们经常需要将新闻Icon、标题、简介与日期组合成一个单独控件,作为一个整体去响应用户点击事件。...接下来,我通过一个例子为你说明如何通过组装去自定义控件。 下图是AppStore升级项UI示意图,图里每一项,都有应用Icon、名称、更新日期、更新简介、应用版本、应用大小以及更新/打开按钮。...与上半部分类似,这两个文本与容器之间存在些间距,因此在Column最外层还需要用Padding控件包装起来,设置容器间距。...将CustomPainter设置容器CustomPaintpainter属性,我们就完成了一个自绘控件封装。...对于有着固定间距视觉元素,我们可以通过Padding对其进行包装,而对于大小伸缩可变视觉元素,我们可以通过Expanded控件其填充容器空白区域。

1.8K20

Flutter Widget框架之旅 顶

将小部件作为参数传递给其他小部件是一种强大技术,可以您创建可以以各种方式重用通用小部件。最后,MyScaffold使用Expanded来填充剩余空间,其中包含一个中心消息。...例如,应用栏有一个阴影,标题文本会自动继承正确样式。 我们还添加了一个浮动动作按钮,以便您采取措施。 请注意,我们再次将小部件作为参数传递给其他小部件。...无状态小部件从他们部件接收参数,它们存储在final成员变量。 当一个小部件被要求build时,它会使用这些存储值来为它创建小部件派生新参数。...尽管最终结果与前一个示例相同,但责任分离允许将更大复杂性封装在各个小部件,同时保持简单性。 把它们放在一起 让我们考虑一个更完整例子,将上面介绍概念汇集在一起。...它将它在构造函数接收到值存储在final成员变量,然后在build函数中使用它。例如,inCart布尔值可以在两个可视外观之间切换:一个使用当前主题主要颜色,另一个使用灰色。

6.7K20

Flutter 按钮,看这篇文章就够了

我在之前文章文本、图片和按钮在Flutter怎么用,简单介绍过按钮组件,本篇文章来详细聊聊Flutter各种按钮组件各种应用场景。...RaisedButton为例来详细介绍一下这三按钮组件该怎么去使用。...首先来看一下按钮组件属性: onPressed,必填参数,按下按钮时触发回调,接收一个方法,传null值表示按钮禁用,会显示禁用相关样式 child,表示按钮展示状态Widget,一般为一个文本组件...,现在我们先来聊聊如何去自定义一个Button组件。...4,floatingActionButton child 属性,我们一般是其配置成Icon,不建议其配置成其他组件。 接下来,我们来聊一聊如何实现闲鱼底部Tabbar上凸起按钮效果。

9.3K31

Flutter技术与实战(4)

,即如何把一段字符串分为几个片段来管理,每个片段单独设置样式。...这就对应着按钮控件两个最重要参数了: onPressed 参数用于设置点击回调,告诉 Flutter 在按钮被点击时通知我们。...在 Flutter ,Container 本身可以单独作为控件存在(比如单独设置背景色、宽高),也可以作为其他控件级存在:Container 可以定义布局过程中子 Widget 如何摆放,以及如何展示...* 需要注意是,对于主轴而言,Flutter 默认是容器决定其长度,即尽可能大,类似 Android match_parent。...Theme.of(context) 方法将向上查找 Widget 树,并返回 Widget 树中最近主题 Theme。如果 Widget Widget 们有一个单独主题定义,则使用该主题。

10.7K20
领券