GHMall

一、自定义控件类(方法、属性) 1、独立出的控件定义方法

import 'package:flutter/material.dart'; typedef clickCallback = void Function(int value); typedef clickCallAdd = void Function(int value);

2、将自定义的方法作为控件的属性,在需要相应的地方掉用,然后再在掉用本控件的时候调用本属性方法。
/// 显示数量子控件 class GHCountItemWidger extends StatefulWidget { /// 数量 int count; /// 是否可以点击 bool isEnable; final clickCallback addClick; final clickCallback subClick; GHCountItemWidger({ Key key, this.isEnable = true, this.count, this.addClick, this.subClick, }) : super(key: key); _GHCountItemWidgerState createState() => _GHCountItemWidgerState(); }

3、内部调用事件,将值添加进去,传到外边。
Widget _rightNumber() { return GestureDetector( behavior: HitTestBehavior.opaque, onTap: () { if (!widget.isEnable) { print("禁止响应"); return; } setState(() { this._count++; }); widget.addClick(this._count); }, child: Container( decoration: BoxDecoration( border: Border.all( width: 1, color: Colors.black12, )), child: Row( children: [ Container( alignment: Alignment.center, width: 20, height: 20, child: Text("+"), ), ], ), ), ); }

4、调用本控件的地方获取方法内传过来的值。
GHCountItemWidger( addClick: (value) { setState(() { this._count = value; }); }, count: this._count, ),

    推荐阅读