现有的拖拽组件基本上都是在整个屏幕范围内拖拽,本文为拖拽组件仅可在父级组件范围内拖拽
实现核心:使用onPanUpdate手势实时更新拖动位置
import 'dart:ui';
import 'package:flutter/material.dart';
class AppFloatBox extends StatefulWidget {
double fatherWidth; //父级组件宽度
double fatherHeight; //父级组件高度
Widget moveWidget; //可拖动的Widget
double moveWidgetWidth; //可拖动的Widget宽度
double moveWidgetHeight; //可拖动的Widget高度
double offsetX; //初始化X轴
double offsetY; //初始化Y轴
Function complete; //可拖动的widgte点击事件
AppFloatBox({
@required this.fatherWidth,
@required this.fatherHeight,
@required this.moveWidget,
@required this.moveWidgetWidth,
@required this.moveWidgetHeight,
@required this.offsetX,
@required this.offsetY,
this.complete
});
@override
_AppFloatBoxState createState() => _AppFloatBoxState(fatherWidth, fatherHeight, moveWidget, moveWidgetWidth, moveWidgetHeight, offsetX, offsetY, complete);
}
class _

本文介绍如何创建一个Flutter组件,该组件允许在父级组件限定区域内进行拖动,并在边界处自动吸附。通过onPanUpdate手势监听实时更新拖动位置,目前支持左上和右上角的吸附,可进一步扩展到其他角落。
最低0.47元/天 解锁文章
280

被折叠的 条评论
为什么被折叠?



