Android开发,有些系统功能不符合我们的开发需求,可能回去看看源码,考虑怎么去覆写实现,或者考虑直接拷贝源代码,自己实现,当然如果代码依赖的很复杂,那么拷贝就不是一个明智的选择了。

这个弹窗有可能你遇到过,当我们修改代码源文件的时候,androidsutido会弹出这个弹窗,给你一个提示,大多数时候我们关了这个弹窗,会当什么都没发生过,但是我们如果点下确定的,是可以改代码的,wtf!!! 虽然在java这边跑的是class,但是在flutter这边,改了就会生效了!!!
基于以上,flutter的一个顽疾,滑动控件(如果没有设置physics)里面子界面如果可以点击,那么父控件开始滑动式,会有一个抖动

image
问题代码 在方法acceptGesture(DragGestureRecognizer)
_state = _DragState.accepted;
/// 1
final Offset delta = _pendingDragOffset;
/// 2
final Duration timestamp = _lastPendingEventTimestamp;
/// 3
_pendingDragOffset = Offset.zero;
当我们开始拖动的时候会执行以上代码,_pendingDragOffset 是用于判断是否开始拖动的,当 _pendingDragOffset >kTouchSlop 则调用acceptGesture确认开始滑动,而这个时候 _pendingDragOffset 是 大于kTouchSlop的至少是18px,这个值的重置在3处,,而1处的delta是初始偏移值,所以导致了这个抖动 而,我们只需要把它改成
_state = _DragState.accepted;
/// 1
final Offset delta = Offset.zero;
/// 2
final Duration timestamp = _lastPendingEventTimestamp;
/// 3
_pendingDragOffset = Offset.zero;
也就是 delta 设置为0 就好了

总结
对于flutter 改源码,会立即生效,即使是多人开发这个更改工作量也是很小的。而且可以直接更改系统代码!!!可以直接更改系统代码!!!可以直接更改系统代码!!! 因此flutter的扩展自用度,真的难以想象,(至少在flutter底层代码没被写进Android系统前是这样的。。。)
更多Flutter资料可以扫描下方二维码免费领取!!
目录

第一章 为什么 Flutter 是跨平台开发 的终极之选
- 01 这是为什么?
- 02 跨平台开发
- 03 什么是 Flutter
- 04 Flutter 的特性

第二章 在 Windows 上搭建 Flutter 开发环境
- 01 使用镜像
- 02 系统要求
- 03 获取 Flutter SDK
- 04 编辑器设置
- 05Android 设置

第三章 编写您的第一个 Flutter App

第四章 Flutter 开发环境搭建和调试
- 1.开发环境的搭建
- 2.模拟器的安装与调试
- 3.开发环境的搭建
- 4.模拟器的安装与调试

第五章 Dart 语法篇之基础语法(一)
一、Hello Dart
二、数据类型
三、变量和常量
四、集合(List、Set、Map)
五、流程控制
六、运算符
七、异常
八、函数

第六章 Dart 语法篇之集合的使用与源码 解析(二)
一、List
二、Set
三、Map
四、Queue
五、LinkedList
六、HashMap
七、Map、HashMap、LinkedHashMap、SplayTreeMap
区别
八、命名构造函数 from 和 of 的区别以及使用建议

第七章 Dart 语法篇之集合操作符函数与 源码分析(三)
- List item

第八章 Dart 语法篇之函数的使用(四)

第九章 Dart 语法篇之面向对象基础(五)

第十章 Dart 语法篇之面向对象继承和 Mixins(六)

第十二章 Dart 语法篇之类型系统与泛型 (七)

第十三章 Flutter 中的 widget

Flutter源码修改解决滑动抖动问题与Dart语法探索
文章讨论了在Android开发中,如何针对不满足需求的系统功能进行源码修改,包括覆写或直接拷贝源代码。特别提到了Flutter框架中滑动控件的抖动问题,通过分析和修改`acceptGesture`方法内的代码解决了这一问题。此外,文章强调了Flutter允许直接修改系统代码带来的便利性,并提供了Dart语法的学习章节概述。
832

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



