flutter子级设置了onTap父级就没有办法触发onTap了如何让它们两个都触发
可以在子级的onTap事件中添加一个回调函数,将事件传递给父级的onTap事件。具体实现方法如下:
- 在子级组件中添加一个回调函数属性,例如onChildTap:
class ChildWidget extends StatelessWidget {
final VoidCallback onChildTap;
ChildWidget({this.onChildTap});
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
// 子级组件的点击事件
print('Child Widget Tapped');
if (onChildTap != null) {
onChildTap();
}
},
child: Container(
width: 100,
height: 100,
color: Colors.blue,
child: Center(
child: Text('Child Widget'),
),
),
);
}
}
- 在父级组件中,将子级组件的onChildTap回调函数传递给子级组件:
class ParentWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
// 父级组件的点击事件
print('Parent Widget Tapped');
},
child: ChildWidget(
onChildTap: () {
// 子级组件的点击事件回调函数
print('Child Widget Tapped Callback');
},
),
);
}
}
这样,当子级组件被点击时,先执行子级组件的onTap事件,然后再执行父级组件的onTap事件。同时,子级组件的onChildTap回调函数也会被触发
原文地址: https://www.cveoy.top/t/topic/c1h8 著作权归作者所有。请勿转载和采集!