我有一个视频播放器,我想访问视频播放器屏幕以在onTap功能上添加一些功能,但是Gesturedetector不会检测屏幕,但是如果我将容器作为其子容器,它将检测到容器。
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => social(),
),
);
},
child: Container(
height: 200,
color: Colors.black,
margin: EdgeInsets.only(right: 200),
child: Chewie(
controller: _chewieController,
),
),
),
如果我把这段代码写成这样,它就不会访问Chewie小部件
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => social(),
),
);
},
child: Chewie(
controller: _chewieController,
),
),
答案 0 :(得分:0)
GestureDetector
仅检测child
上发生的那些点击。
在第一个示例中,您为Container
提供了height: 200
,这意味着200
逻辑像素是可以接收点击的高度。
在第二种情况下,您的窗口小部件Chewie
可能不需要width
或height
不允许GestureDetector
接收点击。
解决方案是将following作为GestureDetector
的子代。
SizedBox.expand(
child: Chewie(...)
)
答案 1 :(得分:0)
手势检测器( 行为:HitTestBehavior.opaque,
onDoubleTap: (){
print('lllllllll');
setState(() {
isShowUser = !isShowUser;
});
},
)
答案 2 :(得分:0)
用 IgnorePointer() 包裹你的视频播放器
行为:HitTestBehavior.opaque 将此属性添加到您的手势检测器中,
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
Utils.launchURL(PersonalData.email);
},
child: IgnorePointer(
fit: BoxFit.fill,
child: SizedBox(
height:
MediaQuery.of(context).size.height / 4,
width:
MediaQuery.of(context).size.width / 5,
child: VideoPlayer(_controller),
),
))),