2025年我用 Compose 写了一个 Todo App】的更多相关文章

写一个TODO App学习Flutter本地存储工具Moor Flutter的数据库存储, 官方文档: https://flutter.dev/docs/cookbook/persistence/sqlite 中写的是直接操纵SQLite数据库的方法. 有没有什么package可以像Android的Room一样, 帮助开发者更加方便地做数据库存储呢? Moor就是这种目的: https://pub.dev/packages/moor. 它的名字是把Room反过来. 它是一个第三方的package…
模拟器中调试元素的布局: Android Studio 右侧边栏 Flutter Inspector,选择 Toggle Debug Paint 打开. 格式化代码: 编辑器中右键 Reformat Code with dartfmt. 使用外部功能包(https://pub.dartlang.org/flutter): 把外部包名加到 pubspec.yaml 的 dependencies 依赖中,运行 flutter packages get 安装,代码中 import 进来使用. 例子内容…
概述 最近学习redux,打算用redux + router写了一个todo.记录下来,供以后开发时参考,相信对其他人也有用. 注意: 我只实现了Footer组件的router,其它组件的实现方法是类似的. 由于react-router升级到V4,所以redux官网的demo有些地方不再适用. 代码 代码请见我的github 组织架构如下图:…
概述 最近学习redux,打算用redux写了一个todo.记录下来,供以后开发时参考,相信对其他人也有用. 代码 代码请见我的github 组织架构如下图:…
概述 最近学习redux,打算先复习一下react,所以用react写了一个todo.记录下来,供以后开发时参考,相信对其他人也有用. 代码 代码请见我的github 组织架构如下图:…
当我第一次通过Kotlin和Compose来实现一个Canvas时, 我收获了什么? 自从2019年Google推荐Kotlin为Android开发的首选语言以来已经经历了将近四年的时间, Compose的1.0版本也发布了将近2年的时间, Kotlin+Compose在现阶段的Android开发过程中还远远达不到主流的程度. 我们是否应该开始尝试这个组合? 这个组合有会给我们带来什么? 对于我来说, 我是个守旧又喜新的人, 自2018初我就尝试用Kotlin来完成一些Android的工作了(A…
Safari手机版居然有个这么愚蠢的bug,浪费了我整个下午,使尽浑身解数,国内国外网站搜索解决方案,每一行代码读了又想想了又读如此不知道多少遍,想破脑袋也想不通到底哪里出了问题,结果竟然是web.config 的formsauthentication 的name属性的值少写了一个点“.”! 悲催啊!所以不得不写一篇文章来纪念这个悲催的下午!也为了帮助其他人以后[百度]的时候,可以根据中文关键字找到这个解决方案. BUG是这样产生的. 本来我们的网站只有一个主域名(www.sport7.cn)用…
用用C3中的animation和transform写的一个模仿加载的时动画效果! 不多说直接上代码; html标签部分 <div class="wrap"> <h2>用C3中的animation和transform写的一个模仿加载的时动画效果</h2> <div class="demo"> <div></div> <div></div> <div></d…
现在使用数据库来写存储过程,动不动参数就会用到xml ,当然罗,优势也很明显,参数相对固定,而且灵活,如果要修改或者什么的,中间接口层也不需要做变化,只需要修改封装的存储过程以及程序传参就ok了. 随着时间慢慢过,有时候就有一个存储过程,一个xml 来应对整个表的新增,修改,删除的情况了.而对于这个情况,我个人比较喜欢使用 Merge关键字来处理.但是如果表里面的列很多,那么复制黏贴啊之类的机械动作就会很多,而且没有什么价值.所以我就写了一个小脚本,应对了使用xml 来做表的增删改的作用 首先我…
将List集合的数据写到一个Excel文件并导出示例: using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using System.Collections.Generic;using System.IO; List<UserInfo> listUser = new List<UserInfo>()           {               new UserInfo { name="1&q…