Navigator.pop()取消抽屉上的InkWell动画

时间:2019-08-16 20:11:49

标签: flutter flutter-layout flutter-animation

是我的印象,还是当我们在Navigator.pop抽头中在Drawer上调用InkWell时,根本没有显示InkWell飞溅吗?这是预期的行为吗?可以解决吗?

当用户单击我的Drawer的标题时,我想关闭我的Route并打开一个新的Drawer。该代码可以正常工作,但是用户点击时没有任何反馈,因为我标头周围的InkWell根本没有动画。如果我卸下Navigator.pop(),它会显示出预期的墨水飞溅,但是,当然,它不会关闭Drawer

这是我在做什么的摘要:

 Widget build(BuildContext context) {
    return Drawer(
      child: ListView(
        children: <Widget>[
          InkWell(
            onTap: () {
              Navigator.pop(context);
              Navigator.popAndPushNamed(context, '/myRoute');
            },
            child: DrawerHeader(
...

1 个答案:

答案 0 :(得分:0)

我进行了快速测试,并且可以正常运行(iOS模拟器)。

screencast inkwell in drawer test

也许很愚蠢,但是请确保将Material()用作父项,并检查用于飞溅的颜色。

您还可以稍加延迟以验证其是否正常工作。

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