只能用于Table的水波纹,接收点击、双击、长按、高亮变化事件,水波纹会作用于表格的一行。
相关组件
TableRowInkWell基本事件
【child】 : 子组件 【Widget】
【onTap】 : 点击事件 【Function()】
【onDoubleTap】 : 双击事件 【Function()】
【onLongPress】 : 长按事件 【Function()】
【onHighlightChanged】 : 高亮变化回调 【Function(bool)】
import 'package:flutter/material.dart';
class CustomTableRowInkWell extends StatelessWidget {
@override
Widget build(BuildContext context) {
var title = _ItemBean("单位称", "量纲", "单位", "单位名称", "单位符号");
var m = _ItemBean("长度", "L", "1m", "米", "m");
var kg = _ItemBean("质量", "M", "1Kg", "千克", "Kg");
var s = _ItemBean("时间", "T", "1s", "秒", "s");
var a = _ItemBean("安培", "Ι", "1A", "安培", "A");
var k = _ItemBean("热力学温度", "θ", "1K", "开尔文", "K");
var mol = _ItemBean("物质的量", "N", "1mol", "摩尔", "mol");
var cd = _ItemBean("发光强度", "J", "1cd", "坎德拉", "cd");
var data = <_ItemBean>[title, m, kg, s, a, k, mol, cd];
return SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Table(
columnWidths: const <int, TableColumnWidth>{
0: FixedColumnWidth(80.0),
1: FixedColumnWidth(80.0),
2: FixedColumnWidth(80.0),
3: FixedColumnWidth(80.0),
4: FixedColumnWidth(80.0),
},
defaultVerticalAlignment: TableCellVerticalAlignment.middle,
border: TableBorder.all(
color: Colors.orangeAccent, width: 1.0, style: BorderStyle.solid),
children: data
.map((item) => TableRow(children: <Widget>[
TableRowInkWell(
onTap: () => print('onTap'),
onDoubleTap: () => print('onDoubleTap'),
onLongPress: () => print('onLongPress'),
onHighlightChanged: (v) => print('onHighlightChanged:$v'),
child: Center(
child: Text(
item.name,
style: TextStyle(color: Colors.blue),
)),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Center(child: Text(item.symbol)),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Center(child: Text(item.unitSymbol)),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Center(child: Text(item.unitName)),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Center(child: Text(item.unit)),
),
]))
.toList(),
),
);
}
}
class _ItemBean {
String name;
String symbol;
String unit;
String unitName;
String unitSymbol;
_ItemBean(this.name, this.symbol, this.unit, this.unitName, this.unitSymbol);
}