Skip to content

Commit 7dd2f61

Browse files
committed
New
1 parent 63b108b commit 7dd2f61

File tree

8 files changed

+187
-17
lines changed

8 files changed

+187
-17
lines changed

.idea/workspace.xml

Lines changed: 58 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Flutter-NoteBooks/demo12.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
> * Tween:用于在动画的起始值和结束值之间插值。它通常与 AnimationController 和 CurvedAnimation 一起使用,帮助你在动画的生命周期内生成一个值的范围。
55
> * AnimatedBuilder:用于在动画执行期间重建部件树。通常,它用于包裹需要根据动画值进行重建的小部件树,以避免重新构建整个页面,提高性能。
66
> * Hero:Hero动画是一种通过在页面之间共享共同的Widget,实现平滑过渡的动画效果。这种动画通常用于在两个页面之间传递共享的UI元素,比如在列表页面和详情页面之间切换时,可以使用Hero动画来产生更流畅的过渡效果。
7+
> * AnimatedSwitcher:用于在其子元素发生变化时提供平滑的过渡动画。它允许你在两个不同的子元素之间切换时,自动插入一个动画效果,使界面看起来更加流畅和动态。
78
89
## AnimationController类
910
```text
@@ -127,6 +128,31 @@ Hero({
127128

128129

129130

131+
## AnimatedSwitcher类
132+
```text
133+
AnimatedSwitcher({
134+
super.key,
135+
this.child,
136+
required this.duration,
137+
this.reverseDuration,
138+
this.switchInCurve = Curves.linear,
139+
this.switchOutCurve = Curves.linear,
140+
this.transitionBuilder = AnimatedSwitcher.defaultTransitionBuilder,
141+
this.layoutBuilder = AnimatedSwitcher.defaultLayoutBuilder,
142+
})
143+
```
144+
145+
### AnimatedSwitcher(...)参数解析
146+
| 参数名称 | 使用类型 | 参数介绍 |
147+
|-------------------|-----------------------------------|----------------------------------------|
148+
| key | Key | 用于传递给Widget类的key参数 |
149+
| child | Widget | 这是 AnimatedSwitcher 的子元素 |
150+
| duration | Duration | 控制过渡动画的时长,即从一个子元素切换到另一个子元素所需的时间 |
151+
| reverseDuration | Duration | 可选的反向动画时长 |
152+
| switchInCurve | Curve | 控制新的子元素进入时的动画曲线 |
153+
| switchOutCurve | Curve | 控制旧的子元素退出时的动画曲线 |
154+
| transitionBuilder | AnimatedSwitcherTransitionBuilder | 一个回调函数,接受当前的动画值和新的子元素,返回一个包含动画过渡效果的小部件 |
155+
| layoutBuilder | AnimatedSwitcherLayoutBuilder | 一个回调函数,允许你自定义 child 的布局行为 |
130156

131157

132158

Flutter-NoteBooks/demo16.md

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -240,16 +240,34 @@ Provider.value({
240240
## Listener类
241241
### 默认构造函数
242242
```text
243-
Provider.value({
244-
Key? key,
245-
required T value,
246-
UpdateShouldNotify<T>? updateShouldNotify,
247-
TransitionBuilder? builder,
248-
Widget? child,
249-
})
250-
243+
Listener({
244+
super.key,
245+
this.onPointerDown,
246+
this.onPointerMove,
247+
this.onPointerUp,
248+
this.onPointerHover,
249+
this.onPointerCancel,
250+
this.onPointerPanZoomStart,
251+
this.onPointerPanZoomUpdate,
252+
this.onPointerPanZoomEnd,
253+
this.onPointerSignal,
254+
this.behavior = HitTestBehavior.deferToChild,
255+
super.child,
256+
})
251257
```
252258

253-
### Provider.value参数解析
254-
| 参数名称 | 使用类型 | 参数介绍 |
255-
|--------------------|-----------------|--------------------------------------------------------------------------------------------------------|
259+
### Listener(...)参数解析
260+
| 参数名称 | 使用类型 | 参数介绍 |
261+
|------------------------|-----------------|------------------------------------|
262+
| key | Key | 标识该小部件的唯一性,用于在树中区分不同的 Listener 小部件 |
263+
| onPointerDown | void Function | 当指针按下时触发,比如用户用手指或鼠标按下时会调用此回调 |
264+
| onPointerMove | void Function | 当指针在屏幕上移动时触发,常用于拖动或滑动的场景 |
265+
| onPointerUp | void Function | 当指针抬起时触发,比如用户手指从屏幕上移开 |
266+
| onPointerHover | void Function | 当指针悬停在组件上时触发,通常用于鼠标悬停事件(不适用于触摸设备) |
267+
| onPointerCancel | void Function | 当指针事件被系统取消时触发,比如触摸手势被中断或设备发生其他干扰 |
268+
| onPointerPanZoomStart | void Function | 当触控手势开始放大、缩小或平移时触发 |
269+
| onPointerPanZoomUpdate | void Function | 当触控手势正在更新(如缩放或平移的值发生变化)时触发 |
270+
| onPointerPanZoomEnd | void Function | 当触控手势结束(例如用户停止缩放或平移)时触发 |
271+
| onPointerSignal | void Function | 当指针信号事件触发时调用 |
272+
| behavior | HitTestBehavior | 控制该组件如何响应命中测试 |
273+
| child | Widget | 嵌套在 Listener 内的子组件 |

Flutter-NoteBooks/demo2.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
> * Text:用于显示文本的基本组件之一,它用于在应用程序中呈现静态文本内容。
44
> * TextStyle:用于定义文本样式的类。它可以用于定制文本的字体、大小、颜色、加粗、斜体、下划线等属性。
55
> * TextSpan:用于构建富文本(Rich Text)的类。它允许你在一个文本中应用不同的样式、添加链接、插入小部件等。
6+
> * TextPainter:用于在画布上绘制文本的工具类。它提供了高度灵活的文本布局和绘制功能,特别适合需要精细控制文本布局或在自定义绘制组件中使用的场景。
7+
68
## Text类
79
### 默认构造函数
810
```text
@@ -182,3 +184,43 @@ TextSpan({
182184
> * GestureRecognizer是一个抽象类,用于手势识别交互
183185
> * MouseCursor是一个抽象类,表示鼠标指针样式
184186
> * 这里的Function类实质指的是PointerEnterEventListener,这实际上是一个返回空值的匿名函数,在Flutter的很多控件中,都有这样的链接函数的功能的参数,它们大多都是返回空值的匿名函数,没有特别强调,我都会把它们统一声明为Function类
187+
188+
## TextPainter类
189+
### 默认构造函数
190+
```text
191+
TextPainter({
192+
InlineSpan? text,
193+
TextAlign textAlign = TextAlign.start,
194+
TextDirection? textDirection,
195+
@Deprecated(
196+
'Use textScaler instead. '
197+
'Use of textScaleFactor was deprecated in preparation for the upcoming nonlinear text scaling support. '
198+
'This feature was deprecated after v3.12.0-2.0.pre.',
199+
)
200+
double textScaleFactor = 1.0,
201+
TextScaler textScaler = TextScaler.noScaling,
202+
int? maxLines,
203+
String? ellipsis,
204+
Locale? locale,
205+
StrutStyle? strutStyle,
206+
TextWidthBasis textWidthBasis = TextWidthBasis.parent,
207+
TextHeightBehavior? textHeightBehavior,
208+
})
209+
```
210+
211+
### TextPainter(...)参数解析
212+
| 参数名称 | 使用类型 | 参数介绍 |
213+
|-----------------------|---------------------|---------------------------------------------|
214+
| text | InlineSpan | 这是要绘制的文本内容 |
215+
| textAlign | TextAlign | 设置文本的对齐方式 |
216+
| textDirection | TextDirection | 定义文本的书写方向 |
217+
| textScaleFactor | TextScaler | 控制文本的缩放比例 |
218+
| textScaler | double | 替代textScaleFactor使用的参数,用于控制文本的缩放行为 |
219+
| maxLines | int | 设置文本的最大行数 |
220+
| ellipsis | String | 如果文本的行数超过了 maxLines,则会在文本末尾添加此省略符号(如 "...") |
221+
| locale | Locale | 设置文本的区域设置,影响字体选择、排版规则等 |
222+
| strutStyle | StrutStyle | 设置文本的 strut 样式,用于定义行间距的样式 |
223+
| textWidthBasis | TextWidthBasis | 设置文本布局时如何计算宽度 |
224+
| textHeightBehavior | TextHeightBehavior | 控制文本的高度行为 |
225+
226+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
key :以便 Flutter 跟踪和管理它们。当 child 改变时,key 是触发动画的关键标志。
2+
child :这是 AnimatedSwitcher 的子元素。
3+
duration :控制过渡动画的时长,即从一个子元素切换到另一个子元素所需的时间。此参数是必填项,决定了动画的速度。
4+
reverseDuration :可选的反向动画时长。当切换从目标状态返回到源状态时,使用这个时长。如果没有指定,reverseDuration 将默认为 duration。
5+
switchInCurve :控制新的子元素进入时的动画曲线。Curve 用于定义动画的变化方式,Curves.linear 表示匀速动画,其他常见的曲线有:
6+
switchOutCurve :控制旧的子元素退出时的动画曲线。和 switchInCurve 类似,这个曲线控制旧元素的退出动画。
7+
transitionBuilder :一个回调函数,接受当前的动画值和新的子元素,返回一个包含动画过渡效果的小部件。你可以使用这个参数来自定义动画效果。默认情况下,AnimatedSwitcher 使用 defaultTransitionBuilder,你可以定义如 FadeTransition、ScaleTransition、SlideTransition 等效果。
8+
layoutBuilder :这是一个回调函数,允许你自定义 child 的布局行为。LayoutBuilder 提供了当前小部件的约束和子元素的布局。你可以使用它来控制 child 的布局或设置自定义的布局。
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
text :这是要绘制的文本内容,通常是 TextSpan 类型。InlineSpan 是一个抽象类,TextSpan 是它的常见实现。你可以通过这个参数设置文本的实际内容和样式。
2+
textAlign :设置文本的对齐方式。
3+
textDirection :定义文本的书写方向。
4+
textScaleFactor :控制文本的缩放比例。此参数已被废弃,建议使用 textScaler 来控制文本缩放。
5+
textScaler :替代textScaleFactor使用的参数,用于控制文本的缩放行为。
6+
maxLines :设置文本的最大行数。如果设置了该参数,文本会被截断并且不超过指定的行数。
7+
ellipsis :如果文本的行数超过了 maxLines,则会在文本末尾添加此省略符号(如 "...")。这是当文本需要截断时的显示方式。
8+
locale :设置文本的区域设置,影响字体选择、排版规则等。
9+
strutStyle :设置文本的 strut 样式,用于定义行间距的样式。strut 用于在排版时调整文本的行高和基线对齐。常见的应用场景是控制文本的行间距。
10+
textWidthBasis :设置文本布局时如何计算宽度。
11+
textHeightBehavior :控制文本的高度行为。通常与 textHeightBehavior 配合使用可以调整文本的垂直对齐方式。具体的行为可以控制字符行之间的垂直间距,例如影响基线对齐
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
key: 标识该小部件的唯一性,用于在树中区分不同的 Listener 小部件。
2+
onPointerDown: 当指针按下时触发,比如用户用手指或鼠标按下时会调用此回调。
3+
onPointerMove: 当指针在屏幕上移动时触发,常用于拖动或滑动的场景。
4+
onPointerUp: 当指针抬起时触发,比如用户手指从屏幕上移开。
5+
onPointerHover: 当指针悬停在组件上时触发,通常用于鼠标悬停事件(不适用于触摸设备)。
6+
onPointerCancel: 当指针事件被系统取消时触发,比如触摸手势被中断或设备发生其他干扰。
7+
onPointerPanZoomStart: 当触控手势开始放大、缩小或平移时触发。适用于多指操作(如缩放手势)。
8+
onPointerPanZoomUpdate: 当触控手势正在更新(如缩放或平移的值发生变化)时触发。
9+
onPointerPanZoomEnd: 当触控手势结束(例如用户停止缩放或平移)时触发。
10+
onPointerSignal: 当指针信号事件触发时调用。常见的信号事件包括鼠标滚轮滚动。
11+
behavior: 控制该组件如何响应命中测试。
12+
child: 嵌套在 Listener 内的子组件。Listener 将监听与其子组件相关的事件。

0 commit comments

Comments
 (0)