GestureDetector
使用Container
作为一个按钮
点击的操作
return GestureDetector(
onTap: (){
// 按下的操作
},
child: Container(
decoration: BoxDecoration(
// 样式
),
child: Center(
child: Text("按钮")
)
)
);
右键操作
return GestureDetector(
onSecondaryTap: (){
// 右键操作
},
child: // 其它Widget
)
滑动操作
return GestureDetector(
onVerticalDragUpdate: (details){
// 上下滑动的操作
if(details.delta.dy<-10){
// 向上滑动为负值,向上滑动超过10的操作
}
if(detail.delta.dy>10){
// 向下滑动为正值,向下滑动超过10的操作
}
},
onHorizontalDragUpdate: (details){
if(details.delta.dy<-10){
// 向左滑动为负值,向左滑动超过10的操作
}
if(detail.delta.dy>10){
// 向右滑动为正值,向右滑动超过10的操作
}
},
child: Container(
decoration: BoxDecoration(
// 样式
),
child: Center(
child: Text("按钮")
)
)
);
备注
注意Container
可能出现“空心”情况,例如:
return GestureDetector(
onTap: (){
// 按下的操作
},
child: Container(
child: Text("按钮")
)
);
此时只有点击“按钮”这个Text
的时候才会有效,解决办法为:
return GestureDetector(
onTap: (){
// 按下的操作
},
child: Container(
color: Colors.transparent, // 添加颜色或者这样使用透明颜色
child: Text("按钮")
)
);