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,
),
推荐阅读
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 开学第一天(下)
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 第326天
- Shell-Bash变量与运算符