当前位置: 首页 > news >正文

【FlutterDart】 拖动边界线改变列宽类似 vscode 那种拖动改变编辑框窗口大小(11 /100)

【Flutter&Dart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100)
【Flutter&Dart】 拖动边界线改变列宽并且有边界高亮和鼠标效果(12 /100)

上效果:

在这里插入图片描述
这个在知乎里找到的效果,感觉很不错就给抄过来实现一下。

上代码:

import 'package:flutter/material.dart';class MyDraggableViewDemo2 extends StatelessWidget {const MyDraggableViewDemo2({super.key});Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text('MyDraggableViewDemo2'),),body: DraggableDemo(),),);}
}class DraggableDemo extends StatefulWidget {const DraggableDemo({super.key});State<StatefulWidget> createState() {return _DraggableDemoState();}
}class _DraggableDemoState extends State<DraggableDemo> {double leftWidth = 100.0;double height = 200.0;bool isResizing = false;Widget build(BuildContext context) {return Row(children: [// 使用 SizedBox 组件来指定左边的组件的宽度SizedBox(width: leftWidth,child: Container(color: Colors.blue,child: Center(child: Text('左侧菜单')),),),// 使用 GestureDetector 组件来包裹分割线GestureDetector(// 监听水平方向的拖拽操作onHorizontalDragUpdate: (details) {// 获取拖拽的距离double delta = details.delta.dx;// 更新左边的组件的宽度leftWidth += delta;// 限制左边的组件的宽度在 0 到屏幕宽度之间leftWidth = leftWidth.clamp(0.0, MediaQuery.of(context).size.width);// 重绘组件setState(() {});},child: VerticalDivider(width: 16,thickness: 4,color: Colors.black,),),// 使用 Expanded 组件来包裹右边的组件Expanded(child: Container(color: Colors.red,child: Center(child: Text('右侧工作区')),),),]);}
}

功能上符合要求了,但是交互效果上还是需要在进行细微调整的
比如鼠标停留后的高亮分割线,感觉是停留超过两秒才出现的,滑过不会出现
在这里插入图片描述
还有左右可拖动的鼠标剪头等等

===========END

http://www.lryc.cn/news/517987.html

相关文章:

  • R语言的循环实现
  • Web应用安全-漏洞扫描器设计与实现
  • 视频生成Sora的全面解析:从AI绘画、ViT到ViViT、TECO、DiT、VDT、NaViT等
  • 【已解决】如何让容器内的应用程序使用代理?
  • DC/AC并网逆变器模型与仿真MATLAB
  • P10424 [蓝桥杯 2024 省 B] 好数
  • 【Word_笔记】Word的修订模式内容改为颜色标记
  • oracle位运算、左移右移、标签算法等
  • spring boot学习第二十三篇:Spring Boot集成RocketMQ
  • 去掉el-table中自带的边框线
  • C语言gdb调试
  • Spring项目创建流程及配置文件bean标签参数简介
  • reactor中的并发
  • 太速科技-418-基于AD9361 +ZYNQ7020 的软件无线电 SDR 套件
  • 监控易:一体化智能运维的扩展性优势深度解析
  • 朴素贝叶斯算法:从生活到数学的完整解析
  • Echarts的认识和基本用法
  • Linux文件系统的安全保障---Overlayroot!
  • 【Linux 之一 】Linux常用命令汇总
  • 【线性代数】通俗理解特征向量与特征值
  • Unity 热更新基础知识
  • 安全基础-互联网技术基础
  • 深度学习从入门到实战——卷积神经网络原理解析及其应用
  • React快速上手到项目实战总篇
  • HTMLHTML5革命:构建现代网页的终极指南 - 0. 课程目录设计
  • ffplay 命令行 从视频第N帧开始读取 ffmpeg 命令行 提取第N帧图片
  • Spring AMQP-保证消费者消息的可靠性
  • Linux(Centos 7.6)命令详解:mkdir
  • 在K8S上部署OceanBase的最佳实践
  • IDEA中Maven依赖包导入失败报红的潜在原因