Timer 如何将顶级手势检测器添加到颤振?

Timer 如何将顶级手势检测器添加到颤振?,timer,flutter,navigationbar,gesturedetector,Timer,Flutter,Navigationbar,Gesturedetector,我有主页和底部导航栏,有3到5个页面视图,如下所示。每个页面视图都会打开新页面(新建一个摘要(索引:this.\u page),例如 a_.dart b_摘要、省道等 每个子页面(例如:a_summary.dart)打开一个不同的页面,用户可以使用 Navigator.push( context, new MaterialPageRoute( builder: (context) => new Account())); 每个摘要页面还使用Navigator.p

我有主页和底部导航栏,有3到5个页面视图,如下所示。每个页面视图都会打开新页面(新建一个摘要(索引:this.\u page),例如

  • a_.dart
  • b_摘要、省道等
每个子页面(例如:a_summary.dart)打开一个不同的页面,用户可以使用

Navigator.push(
    context,
    new MaterialPageRoute(
    builder: (context) => new Account()));
每个摘要页面还使用Navigator.push打开不同的页面,用户可以进行交互。导航树/页面(a_summary.dart)非常深,例如一个长达10页的_摘要页面

 - a_summary stateful
    - aa.page
      - aaa.page
         - aaaa.page
             - aaaaa.page etc.
在主页中,我将计时器设置为5分钟。如果5分钟内没有用户交互,计时器将跳转到登录页面。我的主页如果用户与bottomNavigationBar页面进行交互,则GestureDetector和计时器可以工作。我在所有页面上都使用手势检测器。我的计时器在home.dart中运行。但是,当我进入像aaaaa.page或任何其他类似页面这样的根页面时,我的主页手势检测器和计时器不起作用

home.dart页面代码:

class _MyUserHomePageState extends State<MyUserHomePage> {
  Timer _timer;
  PageController _pageController;
  int _page;

  // TODO: MAIN BUILD WIDGET
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
        onTap: _handleUserInteraction,
        child: new Scaffold(
            body: new PageView(
              children: [
                new ASummary(index: this._page),
                new BSummary(index: this._page),
                new CSummary(index: this._page),
                new DSummary(index: this._page),
                new ESummary(index: this._page),
              ],
              onPageChanged: onPageChanged,
              controller: _pageController,
            ),
            bottomNavigationBar: new Theme(
              data: Theme.of(context).copyWith(
                  canvasColor: capitalDarkGreen,
                  primaryColor: capitalLightGreen,
              child: new BottomNavigationBar(
                items: [
                    new BottomNavigationBarItem(title: new Text( “A”,)),
                    new BottomNavigationBarItem(title: new Text( “B”,)),
                    new BottomNavigationBarItem(title: new Text( “C”,)),
                    new BottomNavigationBarItem(title: new Text( “D”,)),
                    new BottomNavigationBarItem(title: new Text( “E”,)),
                ],
                onTap: navigationTapped,
                currentIndex: this._page,
              ),
            ),
          ),
        ));
  }
 }
class\u MyUserHomePageState扩展状态{
定时器(u定时器),;
页面控制器_页面控制器;
国际网页;
//TODO:主构建小部件
@凌驾
小部件构建(构建上下文){
返回手势检测器(
onTap:_handleUserInteraction,
儿童:新脚手架(
正文:新建页面视图(
儿童:[
新目录(索引:本页),
新的B摘要(索引:本页),
新的C摘要(索引:本页),
新数据摘要(索引:本页),
新的电子摘要(索引:本页),
],
onPageChanged:onPageChanged,
控制器:_pageController,
),
底部导航栏:新主题(
数据:Theme.of(context).copyWith(
画布颜色:capitalDarkGreen,
原色:capitalLightGreen,
子项:新的底部导航栏(
项目:[
新的BottomNavigationBarItem(标题:新文本(“A”),
新的BottomNavigationBarItem(标题:新文本(“B”),
新的BottomNavigationBarItem(标题:新文本(“C”),
新的BottomNavigationBarItem(标题:新文本(“D”),
新的BottomNavigationBarItem(标题:新文本(“E”),
],
onTap:navigationTapped,
当前索引:本页,
),
),
),
));
}
}
每个根页面位于不同的文件夹下。我的问题是如何将顶级的GestureDetector添加到我的Flitter应用程序中,这样我就可以使用GestureDetector激活/停用我的home.dart计时器,即使我的应用程序根深蒂固?还是有更好的选择


想法是在用户登录后,如果5分钟内没有用户交互,应用程序会自动跳转到登录页面。

使用
手势检测器将不可能。您可能想使用
监听器
或自定义
渲染对象
。谢谢Remi,我可以在这里提供一些示例,以便修改我的代码?如何使用全局RenderObject或Listener以便访问根深蒂固的页面(*.dart)?