bool isInsideWidget = false;
GestureDetector(
onTapDown: (details) {
// Check if the tap down event occurred within the bounds of the widget
if (widget.contains(details.globalPosition)) {
isInsideWidget = true;
}
},
onTapUp: (details) {
// Check if the tap up event occurred within the bounds of the widget
if (widget.contains(details.globalPosition)) {
isInsideWidget = false;
}
},
child: Container(
// The widget that will be tracked for taps
),
)
3条答案
按热度按时间gz5pxeao1#
移动的上没有鼠标设备,所以用户没有使用悬停效果的奢侈。在移动应用上使用悬停效果会导致按钮在点击时停留在悬停状态。这种粘性不仅让用户感到困惑,而且当他们被迫双击按钮来启动一个操作时,它会让他们感到沮丧。另一种选择是墨水池小部件,当用户进入该小部件时,它会显示一个飞溅。
希望这对你有帮助。
nxowjjhe2#
可以使用
Draggable
和DragTarget
小部件实现此行为:请参阅以下主题:
Drag a UI element
可拖曳的Widget
DragTarget Widget
ecr0jaav3#
要确定手指当前是否在Flutter中的特定小工具内,您可以使用GestureDetector小工具的onTapDown和onTapUp回调。当手指接触屏幕时,onTapDown回调将被触发,而当手指离开屏幕时,onTapUp回调将被触发。
下面是一个示例,说明如何使用这些回调来确定手指当前是否在特定小部件内:
在这个例子中,isInsideWidget变量在手指接触到小部件时被设置为true,在手指离开小部件时被设置为false。你可以使用这个信息来执行一些操作,比如改变小部件的颜色或者触发一些其他事件。