我有两页: PageA和PageB。PageB是一个透明的页面。
Tap PageA将打印tab PageA,PageB将打印tab PageB。
在PageA中有一个按钮,点击就会跳转到PageB。
现在在PageB中,当我点击PageB时,将打印tab PageB。
但我想在点击tab PageB 和 tab PageA时打印。
我想在PageA和PageB.中捕获点击手势
不管怎么说,能在颤栗中做到这一点吗?
下面是测试代码:
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),
),
),
),
);
}
}发布于 2022-08-29 06:54:12
在A页,请这样做:
_onButtonAClick(){
print('tab PageA');
}像这样使用它:
onTap: _onButtonAClick,在B页中,在构造函数中设置如下:
class _PageB extends StatefulWidget {
final Function onPageAButtonClick;
const _PageB({Key? key, required this.onPageAButtonClick}) : super(key: key);
@override
State<_PageB> createState() => _PageBState();
}在您的页面A中,当导航到B时,请执行以下操作:
Navigator.of(context).push(
PageRouteBuilder(
opaque: false,
pageBuilder: (context, animation, secondaryAnimation) {
return _PageB(onPageAButtonClick:_onButtonAClick);
},
),
);然后在你的B页按钮中调用这个:
onTap: () {
widget.onPageAButtonClick();
print('tab PageB');
},https://stackoverflow.com/questions/73525016
复制相似问题