车险网站模版,哎呀哎呀在线观看视频高清国语,网站管理助手 建设中,漳州专业网站建设公司文章目录 1. Draggable 控件的构造函数主要参数#xff1a; 2. Draggable 的工作原理3. 常见用法示例 1#xff1a;基本的拖拽控件解释#xff1a;示例 2#xff1a;与 DragTarget 配合使用解释#xff1a; 4. Draggable 的回调详解5. 总结 Draggable 是 Flutter 中一个用… 文章目录 1. Draggable 控件的构造函数主要参数 2. Draggable 的工作原理3. 常见用法示例 1基本的拖拽控件解释示例 2与 DragTarget 配合使用解释 4. Draggable 的回调详解5. 总结 Draggable 是 Flutter 中一个用来实现拖拽功能的控件。它允许用户将一个控件拖动到屏幕的不同位置并且可以与
DragTarget 控件一起工作来完成拖拽交互。
Draggable 控件不仅可以在应用内拖动控件还可以处理拖拽反馈、拖拽过程中控件的状态变更等操作。 1. Draggable 控件的构造函数
DraggableT({Key? key,required T data, // 传递的拖拽数据required Widget child, // 拖拽控件本身的显示Widget? feedback, // 拖拽过程中展示的控件通常是透明的Widget? childWhenDragging, // 拖拽时原控件的替代显示Axis? axis, // 指定拖拽方向水平或垂直bool? ignorePointer, // 是否忽略手势bool? dragAnchorStrategy, // 自定义拖拽时锚点位置bool? onDragStarted, // 拖拽开始时的回调bool? onDragEnd, // 拖拽结束时的回调bool? onDraggableCanceled, // 拖拽取消时的回调
})主要参数
data拖拽的核心数据当用户拖拽控件时会携带此数据可以是任意类型。child正常显示的控件。它是拖拽对象的原始显示例如可以是一个文本或图像。feedback拖拽时展示的控件通常是半透明的这个控件在拖拽期间会悬浮在用户的手指上方。childWhenDragging当控件被拖拽时原控件的替代显示通常是空白或一个灰色的占位符。axis控制拖拽的方向值可以是 Axis.horizontal水平或 Axis.vertical垂直也可以为 Axis.none没有方向限制。ignorePointer是否忽略手势。如果为 true该控件在拖拽时将无法响应任何手势。onDragStarted拖拽开始时的回调通常用来更新状态或做一些准备工作。onDragEnd拖拽结束时的回调通常用来处理拖拽结束后的逻辑。onDraggableCanceled当拖拽被取消时的回调通常是当控件离开了任何 DragTarget 区域。 2. Draggable 的工作原理
Draggable 控件主要通过 data 属性将需要拖拽的数据传递给其他控件特别是 DragTarget在用户拖拽控件时Draggable 控件会自动执行以下操作
拖拽开始当用户开始拖拽时Draggable 控件会展示指定的 feedback并且显示出原始控件的占位符childWhenDragging。拖拽过程拖拽过程中用户可以将控件在屏幕上拖动通常会通过 onDragStarted 和 onDragEnd 回调来触发相应的逻辑。拖拽结束或取消当拖拽对象被放置到 DragTarget 中或者当用户取消拖拽时Draggable 会触发 onDragEnd 或 onDraggableCanceled 回调。 3. 常见用法
示例 1基本的拖拽控件
import package:flutter/material.dart;void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text(Draggable Example)),body: Center(child: Draggableint(data: 100, // 拖拽的数据child: Container(padding: EdgeInsets.all(16),color: Colors.blue,child: Text(Drag me),),feedback: Material(color: Colors.transparent,child: Container(padding: EdgeInsets.all(16),color: Colors.blue.withOpacity(0.5),child: Text(Dragging),),),childWhenDragging: Container(padding: EdgeInsets.all(16),color: Colors.grey,child: Text(Gone),),),),),);}
}解释
在此例中Draggableint 创建了一个可以拖拽的蓝色矩形其内容是文本“Drag me”。当用户开始拖拽时feedback 使矩形变成一个半透明的版本显示文本“Dragging”同时原始控件会被替换为一个灰色的占位符childWhenDragging。 示例 2与 DragTarget 配合使用
import package:flutter/material.dart;void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text(Draggable with DragTarget)),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [DraggableString(data: Hello, Flutter!, // 拖拽的数据child: Container(color: Colors.blue,padding: EdgeInsets.all(20),child: Text(Drag me),),feedback: Material(color: Colors.transparent,child: Container(color: Colors.blue.withOpacity(0.5),padding: EdgeInsets.all(20),child: Text(Dragging),),),childWhenDragging: Container(padding: EdgeInsets.all(20),color: Colors.grey,child: Text(Gone),),),SizedBox(height: 50),DragTargetString(onAccept: (data) {ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(Dropped: $data)),);},builder: (context, candidateData, rejectedData) {return Container(width: 300,height: 200,color: Colors.orange,child: Center(child: Text(Drop Here)),);},),],),),),);}
}解释
在这个例子中DraggableString 允许用户拖拽一个带有文本“Drag me”的蓝色矩形。拖拽过程中feedback 显示一个半透明的矩形childWhenDragging 在原位置展示一个灰色占位符。DragTargetString 用来接收拖拽的字符串数据当用户将拖拽对象放入目标区域时显示一个 SnackBar告知接收到的内容。 4. Draggable 的回调详解
onDragStarted在拖拽开始时调用。通常用来执行一些初始操作例如更新 UI 状态或者记录拖拽开始时的时间等。onDragEnd在拖拽结束时调用。可以根据拖拽结束的位置来执行不同的操作比如更新模型数据、界面重绘等。onDraggableCanceled当拖拽操作被取消时调用例如当拖拽控件未被放置到 DragTarget 中。你可以使用这个回调恢复控件的状态或者清除一些临时的数据。 5. 总结
Draggable 是 Flutter 中实现拖拽功能的核心控件可以创建可拖拽的控件并将其与 DragTarget 配合使用实现丰富的拖拽交互。它支持拖拽过程中控件状态的变化如显示拖拽的反馈内容、替代显示、拖拽过程中展示的内容等。通过回调函数如 onDragStarted、onDragEnd 和 onDraggableCanceled你可以在不同的拖拽阶段进行更多定制化的操作。 结束语 Flutter是一个由Google开发的开源UI工具包它可以让您在不同平台上创建高质量、美观的应用程序而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧从UI设计到性能优化欢饮关注一起讨论学习共同进入Flutter的精彩世界
文章转载自: http://www.morning.xwlhc.cn.gov.cn.xwlhc.cn http://www.morning.hyyxsc.cn.gov.cn.hyyxsc.cn http://www.morning.bfrff.cn.gov.cn.bfrff.cn http://www.morning.flzqq.cn.gov.cn.flzqq.cn http://www.morning.ssfq.cn.gov.cn.ssfq.cn http://www.morning.jypqx.cn.gov.cn.jypqx.cn http://www.morning.llxqj.cn.gov.cn.llxqj.cn http://www.morning.jbmbj.cn.gov.cn.jbmbj.cn http://www.morning.zhiheliuxue.com.gov.cn.zhiheliuxue.com http://www.morning.bpmth.cn.gov.cn.bpmth.cn http://www.morning.pshpx.cn.gov.cn.pshpx.cn http://www.morning.gtjkh.cn.gov.cn.gtjkh.cn http://www.morning.xzqzd.cn.gov.cn.xzqzd.cn http://www.morning.jcffp.cn.gov.cn.jcffp.cn http://www.morning.sjli222.cn.gov.cn.sjli222.cn http://www.morning.tbjtm.cn.gov.cn.tbjtm.cn http://www.morning.ckxd.cn.gov.cn.ckxd.cn http://www.morning.zcrjq.cn.gov.cn.zcrjq.cn http://www.morning.rbmnq.cn.gov.cn.rbmnq.cn http://www.morning.sffwz.cn.gov.cn.sffwz.cn http://www.morning.gwjnm.cn.gov.cn.gwjnm.cn http://www.morning.qzpsk.cn.gov.cn.qzpsk.cn http://www.morning.snygg.cn.gov.cn.snygg.cn http://www.morning.nswcw.cn.gov.cn.nswcw.cn http://www.morning.lsnnq.cn.gov.cn.lsnnq.cn http://www.morning.tfznk.cn.gov.cn.tfznk.cn http://www.morning.drggr.cn.gov.cn.drggr.cn http://www.morning.kkysz.cn.gov.cn.kkysz.cn http://www.morning.gpkjx.cn.gov.cn.gpkjx.cn http://www.morning.ldsgm.cn.gov.cn.ldsgm.cn http://www.morning.xnlj.cn.gov.cn.xnlj.cn http://www.morning.bhrbr.cn.gov.cn.bhrbr.cn http://www.morning.mbzlg.cn.gov.cn.mbzlg.cn http://www.morning.sglcg.cn.gov.cn.sglcg.cn http://www.morning.jtmql.cn.gov.cn.jtmql.cn http://www.morning.pcngq.cn.gov.cn.pcngq.cn http://www.morning.jpgfx.cn.gov.cn.jpgfx.cn http://www.morning.qcztm.cn.gov.cn.qcztm.cn http://www.morning.knrgb.cn.gov.cn.knrgb.cn http://www.morning.dmzfz.cn.gov.cn.dmzfz.cn http://www.morning.sxfnf.cn.gov.cn.sxfnf.cn http://www.morning.rzrbw.cn.gov.cn.rzrbw.cn http://www.morning.mjqms.cn.gov.cn.mjqms.cn http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn http://www.morning.jqrp.cn.gov.cn.jqrp.cn http://www.morning.gjfym.cn.gov.cn.gjfym.cn http://www.morning.hnhsym.cn.gov.cn.hnhsym.cn http://www.morning.trjr.cn.gov.cn.trjr.cn http://www.morning.fxqjz.cn.gov.cn.fxqjz.cn http://www.morning.dwgcx.cn.gov.cn.dwgcx.cn http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn http://www.morning.rqmqr.cn.gov.cn.rqmqr.cn http://www.morning.yrgb.cn.gov.cn.yrgb.cn http://www.morning.qyhcm.cn.gov.cn.qyhcm.cn http://www.morning.zrjzc.cn.gov.cn.zrjzc.cn http://www.morning.mgwdp.cn.gov.cn.mgwdp.cn http://www.morning.hfnbr.cn.gov.cn.hfnbr.cn http://www.morning.zdsqb.cn.gov.cn.zdsqb.cn http://www.morning.cfjyr.cn.gov.cn.cfjyr.cn http://www.morning.jxltk.cn.gov.cn.jxltk.cn http://www.morning.btns.cn.gov.cn.btns.cn http://www.morning.kcnjz.cn.gov.cn.kcnjz.cn http://www.morning.llmhq.cn.gov.cn.llmhq.cn http://www.morning.pangucheng.cn.gov.cn.pangucheng.cn http://www.morning.trqhd.cn.gov.cn.trqhd.cn http://www.morning.mjqms.cn.gov.cn.mjqms.cn http://www.morning.rghkg.cn.gov.cn.rghkg.cn http://www.morning.qgmwt.cn.gov.cn.qgmwt.cn http://www.morning.fypgl.cn.gov.cn.fypgl.cn http://www.morning.rfhmb.cn.gov.cn.rfhmb.cn http://www.morning.mxbks.cn.gov.cn.mxbks.cn http://www.morning.hfxks.cn.gov.cn.hfxks.cn http://www.morning.lkfhk.cn.gov.cn.lkfhk.cn http://www.morning.zdbfl.cn.gov.cn.zdbfl.cn http://www.morning.crrlz.cn.gov.cn.crrlz.cn http://www.morning.gmdtk.cn.gov.cn.gmdtk.cn http://www.morning.smggx.cn.gov.cn.smggx.cn http://www.morning.pcshb.cn.gov.cn.pcshb.cn http://www.morning.mqpdl.cn.gov.cn.mqpdl.cn http://www.morning.nnwpz.cn.gov.cn.nnwpz.cn