【Flutter&Dart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100)

上效果

预期的是通过拖动一条边界线改变窗口大小,类似vscode里拖动效果。这个是简单的拖动实现

上代码:

dart 复制代码
import 'package:flutter/material.dart';

class MyDraggableViewDemo extends StatelessWidget {
  const MyDraggableViewDemo({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('MyDraggableViewDemo'),
        ),
        body: DraggableDemo(),
      ),
    );
  }
}

class DraggableDemo extends StatefulWidget {
  const DraggableDemo({super.key});

  @override
  State<StatefulWidget> createState() {
    return _DraggableDemoState();
  }
}

class _DraggableDemoState extends State<DraggableDemo> {
  double width = 200.0;
  double height = 200.0;

  @override
  Widget build(BuildContext context) {
    return Center(
      child: GestureDetector(
        onPanUpdate: (details) {
          setState(() {
            width = width + details.delta.dx;
            height = height + details.delta.dy;
          });
        },
        child: Container(
          width: width,
          height: height,
          
          color: Colors.blue,
          child: Center(
            child: Text(
              '点击 拖动后改变窗口大小',
              style: TextStyle(color: Colors.white),
            ),
          ),
        ),
      ),
    );
  }
}

所以预期的边界线效果,应该是对边界线进行处理,然后和关联的 widget 进行联动,

下一篇见

======End

相关推荐
天若子2 小时前
flutter ListView Item复用源码解析
前端·flutter
剑客狼心6 小时前
Android Studio:键值对存储sharedPreferences
android·ide·android studio·键值对存储
雾里看山8 小时前
【MySQL】 表的约束(上)
android·mysql·adb
小墙程序员8 小时前
一文了解 Android 中 AAR、APK 和 AAB 的文件结构
android·gradle
q5673152310 小时前
无法在Django 1.6中导入自定义应用
android·开发语言·数据库·django·sqlite
a31582380610 小时前
Android设置个性化按钮按键的快捷启动应用
android·开发语言·framework·源码·android13
Henry_He10 小时前
SystemUI通知在阿拉伯语下布局方向RTL下appName显示异常
android
XJSFDX_Ali11 小时前
安卓开发,底部导航栏
android·java·开发语言
云罗张晓_za89866813 小时前
抖音“碰一碰”发视频:短视频社交的新玩法
android·c语言·网络·线性代数·矩阵·php
货拉拉技术16 小时前
记一次无障碍测试引发app崩溃问题的排查与解决
android·前端·程序员