首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >两个页面的响应点击手势

两个页面的响应点击手势
EN

Stack Overflow用户
提问于 2022-08-29 06:46:37
回答 1查看 33关注 0票数 1

我有两页: PageA和PageB。PageB是一个透明的页面。

Tap PageA将打印tab PageA,PageB将打印tab PageB

在PageA中有一个按钮,点击就会跳转到PageB。

现在在PageB中,当我点击PageB时,将打印tab PageB

但我想在点击tab PageB tab PageA时打印。

我想在PageA和PageB.中捕获点击手势

不管怎么说,能在颤栗中做到这一点吗?

下面是测试代码:

代码语言:javascript
运行
复制
class _PageA extends StatelessWidget {
  const _PageA({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        print('tab PageA');
      },
      child: Scaffold(
        appBar: AppBar(title: Text('PageA')),
        body: Center(
          child: ElevatedButton(
            child: Text('Push PageB'),
            onPressed: () {
              Navigator.of(context).push(
                PageRouteBuilder(
                  opaque: false,
                  pageBuilder: (context, animation, secondaryAnimation) {
                    return _PageB();
                  },
                ),
              );
            },
          ),
        ),
      ),
    );
  }
}


class _PageB extends StatefulWidget {
  const _PageB({Key? key}) : super(key: key);

  @override
  State<_PageB> createState() => _PageBState();
}

class _PageBState extends State<_PageB> {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        print('tab PageB');
      },
      child: Scaffold(
        backgroundColor: Colors.transparent,
        body: Center(
          child: Text(
            'This is a transparency page',
            style: TextStyle(fontSize: 30),
          ),
        ),
      ),
    );
  }
}
EN

Stack Overflow用户

发布于 2022-08-29 06:54:12

在A页,请这样做:

代码语言:javascript
运行
复制
_onButtonAClick(){
 print('tab PageA');
}

像这样使用它:

代码语言:javascript
运行
复制
onTap: _onButtonAClick,

在B页中,在构造函数中设置如下:

代码语言:javascript
运行
复制
class _PageB extends StatefulWidget {
  final Function onPageAButtonClick;
  const _PageB({Key? key, required this.onPageAButtonClick}) : super(key: key);

  @override
  State<_PageB> createState() => _PageBState();
}

在您的页面A中,当导航到B时,请执行以下操作:

代码语言:javascript
运行
复制
Navigator.of(context).push(
                PageRouteBuilder(
                  opaque: false,
                  pageBuilder: (context, animation, secondaryAnimation) {
                    return _PageB(onPageAButtonClick:_onButtonAClick);
                  },
                ),
              );

然后在你的B页按钮中调用这个:

代码语言:javascript
运行
复制
onTap: () {
        widget.onPageAButtonClick();
        print('tab PageB');
      },
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73525016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档