我在堆栈中有两个scaffold
小部件用于某些目的..每个scaffold
都有自己的内容。第二个支架有透明的背景色,所以第一个支架是可见的。
Stack(
children: [
Scaffold(
body: GestureDetector(
onTap: () {},
child: myBody(),
),
),
Scaffold(
backgroundColor: Colors.transparent,
body: ListView.builder(
itemBuilder: (context, index) => ...,
),
)
],
),
第一个Scaffold
中的GestureDetector
不起作用,这是因为脚手架堆栈
注意:我不能用IgnorePointer
Package 第二个Scaffold
,因为它有可点击的ListView.bulder,它也会忽略任何指针
如何解决这个问题
4条答案
按热度按时间unftdfkk1#
你可以从第二个scaffold列表项tap中获取回调方法,并在第一个scaffold
GestureDetector
中提供的level上创建一个函数。xoshrz7s2#
你可以把手势设置在栈外,用这个内部列表点击也可以,但是当你把第一个支架主体设置为可点击的时候,它就不起作用了,因为第二个支架覆盖了它。
q43xntqr3#
您需要在堆栈小部件的末尾添加可点击小部件,如下所示:
ozxc1zmp4#
只要像这样使用
IgnorePointer
,secondWidget()
就可以点击了。