Modifying PageRoute Controller using ModalRoute 'can only be used in instance members..'

问题描述 投票:0回答:0

我有一个 Widget,它基于某些用户交互修改 PageRoute 的 AnimationController。

它通过

ModalRoute.of(context)?.controller
执行此操作,虽然它按预期工作,但它被标记为对受保护成员的无效使用。

static void animateController(BuildContext context, double value){
  route?.controller  // flag
        ?.animateTo(
          value.clamp(0, 1),
          curve: Curves.easeOutCubic,
          duration: Duration(milliseconds: 360),
        )
}

// flag :: The member 'controller' can only be used within instance members of subclasses of 'package:flutter/src/widgets/routes.dart'.dart(invalid_use_of_protected_member)

虽然这仍然有效,但显然这不是正确的方法。我可以构建一个自定义的

PageRoute<T>
,一个包含控制器的单独的
InheritedWidget
,然后创建一个静态函数,但是当它与
ModalRoute
一起使用时,这似乎完全没有必要。

我想我得到这个标志是因为控制器被注释为受保护。在子小部件中访问和调整此控制器的最佳方式是什么。

flutter protected inherited animationcontroller
© www.soinside.com 2019 - 2024. All rights reserved.