代码之家  ›  专栏  ›  技术社区  ›  Michel Feinstein

导航器.pop()取消抽屉上的墨水池动画

  •  0
  • Michel Feinstein  · 技术社区  · 5 年前

    Navigator.pop Drawer ,从a内部 InkWell 墨水池

    我想关闭我的 打开一个新的 Route 当用户单击我的 抽屉 . 代码运行得很好,但是用户点击没有反馈,因为我头部周围的墨水池根本没有动画效果。如果我把 Navigator.pop() 它按预期显示墨水飞溅,但当然,它不会关闭 抽屉

    以下是我正在做的事情:

     Widget build(BuildContext context) {
        return Drawer(
          child: ListView(
            children: <Widget>[
              InkWell(
                onTap: () {
                  Navigator.pop(context);
                  Navigator.popAndPushNamed(context, '/myRoute');
                },
                child: DrawerHeader(
    ...
    
    0 回复  |  直到 5 年前
        1
  •  0
  •   roipeker    5 年前

    我做了一个快速测试,工作正常(iOS模拟器)。

    screencast inkwell in drawer test

    也许这是一个愚蠢的观点,但请确保将Material()作为父级,并检查用于splash的颜色。

    您还可以应用一点延迟来验证它是否正常工作。

    child: Material(
        child: InkWell(
            onTap: () async {
                await Future.delayed(Duration(milliseconds: 500));
                Navigator.pop(context);
            },
            ...