水波纹的点击效果,接收点击、双击、长按、取消、高亮变化事件,可指定水波纹颜色、半径、高亮形状等属性。

相关组件

InkWell Ink

InkResponse基本事件

【child】 : 子组件 【Widget】
【onTap】 : 点击事件 【Function()】
【onDoubleTap】 : 双击事件 【Function()】
【onTapCancel】 : 点击取消 【Function()】
【onLongPress】 : 长按事件 【Function()】
168.gif

  1. import 'package:flutter/material.dart';
  2. class CustomInkResponse extends StatefulWidget {
  3. @override
  4. _CustomInkResponseState createState() => _CustomInkResponseState();
  5. }
  6. class _CustomInkResponseState extends State<CustomInkResponse> {
  7. var _info = 'Push';
  8. @override
  9. Widget build(BuildContext context) {
  10. return InkResponse(
  11. onTap: () => setState(() => _info = 'onTap'),
  12. onDoubleTap: () => setState(() => _info = 'onDoubleTap'),
  13. onLongPress: () => setState(() => _info = 'onLongPress'),
  14. onTapCancel: () => setState(() => _info = 'onTapCancel'),
  15. child: Container(
  16. alignment: Alignment.center,
  17. width: 200,
  18. height: 100,
  19. child: Text(_info),
  20. ),
  21. );
  22. }
  23. }

InkResponse其他属性

【child】 : 子组件 【Widget】
【onHighlightChanged】 : 高亮变化回调 【Function(bool)】
【highlightColor】 : 高亮色 【Color】
【splashColor】 : 水波纹色 【Color】
【radius】 : 水波半径 【double】
169.gif

import 'package:flutter/material.dart';
class ColorInkResponse extends StatefulWidget {
  @override
  _ColorInkResponseState createState() => _ColorInkResponseState();
}

class _ColorInkResponseState extends State<ColorInkResponse> {
  var _info = 'Push';

  @override
  Widget build(BuildContext context) {
    return InkResponse(
      onTap: () => {},
      splashColor: Colors.blueAccent,
      highlightColor: Colors.orange,
      onHighlightChanged: (v) =>
          setState(() => _info = 'onHighlightChanged:$v'),
      radius: 50,
      child: Container(
        alignment: Alignment.center,
        width: 200,
        height: 100,
        child: Text(_info),
      ),
    );
  }
}