dart 在Flutter中滑过屏幕时,如何知道Finger是否已进入Widget

aiazj4mn  于 2022-12-06  发布在  Flutter
关注(0)|答案(3)|浏览(202)

我想得到一个真,而手指在屏幕上随机滑动,并进入一个特定的小部件和假,如果手指得到了该小部件。

gz5pxeao

gz5pxeao1#

移动的上没有鼠标设备,所以用户没有使用悬停效果的奢侈。在移动应用上使用悬停效果会导致按钮在点击时停留在悬停状态。这种粘性不仅让用户感到困惑,而且当他们被迫双击按钮来启动一个操作时,它会让他们感到沮丧。另一种选择是墨水池小部件,当用户进入该小部件时,它会显示一个飞溅。
希望这对你有帮助。

nxowjjhe

nxowjjhe2#

可以使用DraggableDragTarget小部件实现此行为:
请参阅以下主题:
Drag a UI element
可拖曳的Widget
DragTarget Widget

ecr0jaav

ecr0jaav3#

要确定手指当前是否在Flutter中的特定小工具内,您可以使用GestureDetector小工具的onTapDownonTapUp回调。当手指接触屏幕时,onTapDown回调将被触发,而当手指离开屏幕时,onTapUp回调将被触发。
下面是一个示例,说明如何使用这些回调来确定手指当前是否在特定小部件内:

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
  ),
)

在这个例子中,isInsideWidget变量在手指接触到小部件时被设置为true,在手指离开小部件时被设置为false。你可以使用这个信息来执行一些操作,比如改变小部件的颜色或者触发一些其他事件。

相关问题