Skip to content

Commit 6f4ab84

Browse files
committed
🔧 Update Pack 2 #4
1 parent 32c20fb commit 6f4ab84

File tree

1 file changed

+51
-2
lines changed

1 file changed

+51
-2
lines changed

lib/src/effects/translate_effect.dart

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ extension TranslateEffectExt on Widget {
1313
Widget translate(
1414
Offset offset, {
1515
bool fractional = false,
16+
bool transformHitTests = false,
1617
Offset? from,
1718
}) {
1819
return EffectWidget(
@@ -21,10 +22,12 @@ extension TranslateEffectExt on Widget {
2122
: TranslateEffect(
2223
offset: from,
2324
fractional: fractional,
25+
transformHitTests: transformHitTests,
2426
),
2527
end: TranslateEffect(
2628
offset: offset,
2729
fractional: fractional,
30+
transformHitTests: transformHitTests,
2831
),
2932
child: this,
3033
);
@@ -36,6 +39,7 @@ extension TranslateEffectExt on Widget {
3639
Widget translateX(
3740
double x, {
3841
bool fractional = false,
42+
bool transformHitTests = false,
3943
double? from,
4044
}) {
4145
return EffectWidget(
@@ -44,10 +48,12 @@ extension TranslateEffectExt on Widget {
4448
: TranslateEffect(
4549
offset: Offset(from, 0),
4650
fractional: fractional,
51+
transformHitTests: transformHitTests,
4752
),
4853
end: TranslateEffect(
4954
offset: Offset(x, 0),
5055
fractional: fractional,
56+
transformHitTests: transformHitTests,
5157
),
5258
child: this,
5359
);
@@ -59,6 +65,7 @@ extension TranslateEffectExt on Widget {
5965
Widget translateY(
6066
double y, {
6167
bool fractional = false,
68+
bool transformHitTests = false,
6269
double? from,
6370
}) {
6471
return EffectWidget(
@@ -67,10 +74,12 @@ extension TranslateEffectExt on Widget {
6774
: TranslateEffect(
6875
offset: Offset(0, from),
6976
fractional: fractional,
77+
transformHitTests: transformHitTests,
7078
),
7179
end: TranslateEffect(
7280
offset: Offset(0, y),
7381
fractional: fractional,
82+
transformHitTests: transformHitTests,
7483
),
7584
child: this,
7685
);
@@ -84,6 +93,7 @@ extension TranslateEffectExt on Widget {
8493
double x,
8594
double y, {
8695
bool fractional = false,
96+
bool transformHitTests = false,
8797
Offset? from,
8898
}) {
8999
return EffectWidget(
@@ -92,42 +102,56 @@ extension TranslateEffectExt on Widget {
92102
: TranslateEffect(
93103
offset: from,
94104
fractional: fractional,
105+
transformHitTests: transformHitTests,
95106
),
96107
end: TranslateEffect(
97108
offset: Offset(x, y),
98109
fractional: fractional,
110+
transformHitTests: transformHitTests,
99111
),
100112
child: this,
101113
);
102114
}
103115

104116
/// Applies a [TranslateEffect] to a [Widget] with a default animation
105117
/// to slide this widget in.
106-
Widget slideIn(Offset offset, {bool fractional = false}) {
118+
Widget slideIn(
119+
Offset offset, {
120+
bool fractional = false,
121+
bool transformHitTests = false,
122+
}) {
107123
return EffectWidget(
108124
start: TranslateEffect(
109125
offset: offset,
110126
fractional: fractional,
127+
transformHitTests: transformHitTests,
111128
),
112129
end: TranslateEffect(
113130
offset: Offset.zero,
114131
fractional: fractional,
132+
transformHitTests: transformHitTests,
115133
),
116134
child: this,
117135
);
118136
}
119137

120138
/// Applies a [TranslateEffect] to a [Widget] with a default animation
121139
/// to slide this widget out.
122-
Widget slideOut(Offset offset, {bool fractional = false}) {
140+
Widget slideOut(
141+
Offset offset, {
142+
bool fractional = false,
143+
bool transformHitTests = false,
144+
}) {
123145
return EffectWidget(
124146
start: TranslateEffect(
125147
offset: Offset.zero,
126148
fractional: fractional,
149+
transformHitTests: transformHitTests,
127150
),
128151
end: TranslateEffect(
129152
offset: offset,
130153
fractional: fractional,
154+
transformHitTests: transformHitTests,
131155
),
132156
child: this,
133157
);
@@ -138,87 +162,103 @@ extension TranslateEffectExt on Widget {
138162
Widget slideInFromLeft({
139163
double? value,
140164
bool fractional = false,
165+
bool transformHitTests = false,
141166
}) =>
142167
slideIn(
143168
Offset(value ?? (fractional ? -1 : -_kDefaultSlideOffset), 0),
144169
fractional: fractional,
170+
transformHitTests: transformHitTests,
145171
);
146172

147173
/// Applies a [TranslateEffect] to a [Widget] with a default animation
148174
/// to slide this widget in from the right.
149175
Widget slideInFromRight({
150176
double? value,
151177
bool fractional = false,
178+
bool transformHitTests = false,
152179
}) =>
153180
slideIn(
154181
Offset(value ?? (fractional ? 1 : _kDefaultSlideOffset), 0),
155182
fractional: fractional,
183+
transformHitTests: transformHitTests,
156184
);
157185

158186
/// Applies a [TranslateEffect] to a [Widget] with a default animation
159187
/// to slide this widget in from the top.
160188
Widget slideInFromTop({
161189
double? value,
162190
bool fractional = false,
191+
bool transformHitTests = false,
163192
}) =>
164193
slideIn(
165194
Offset(0, value ?? (fractional ? -1 : -_kDefaultSlideOffset)),
166195
fractional: fractional,
196+
transformHitTests: transformHitTests,
167197
);
168198

169199
/// Applies a [TranslateEffect] to a [Widget] with a default animation
170200
/// to slide this widget in from the bottom.
171201
Widget slideInFromBottom({
172202
double? value,
173203
bool fractional = false,
204+
bool transformHitTests = false,
174205
}) =>
175206
slideIn(
176207
Offset(0, value ?? (fractional ? 1 : _kDefaultSlideOffset)),
177208
fractional: fractional,
209+
transformHitTests: transformHitTests,
178210
);
179211

180212
/// Applies a [TranslateEffect] to a [Widget] with a default animation
181213
/// to slide this widget out to the left.
182214
Widget slideOutToLeft({
183215
double? value,
184216
bool fractional = false,
217+
bool transformHitTests = false,
185218
}) =>
186219
slideOut(
187220
Offset(value ?? (fractional ? -1 : -_kDefaultSlideOffset), 0),
188221
fractional: fractional,
222+
transformHitTests: transformHitTests,
189223
);
190224

191225
/// Applies a [TranslateEffect] to a [Widget] with a default animation
192226
/// to slide this widget out to the right.
193227
Widget slideOutToRight({
194228
double? value,
195229
bool fractional = false,
230+
bool transformHitTests = false,
196231
}) =>
197232
slideOut(
198233
Offset(value ?? (fractional ? 1 : _kDefaultSlideOffset), 0),
199234
fractional: fractional,
235+
transformHitTests: transformHitTests,
200236
);
201237

202238
/// Applies a [TranslateEffect] to a [Widget] with a default animation
203239
/// to slide this widget out to the top.
204240
Widget slideOutToTop({
205241
double? value,
206242
bool fractional = false,
243+
bool transformHitTests = false,
207244
}) =>
208245
slideOut(
209246
Offset(0, value ?? (fractional ? -1 : -_kDefaultSlideOffset)),
210247
fractional: fractional,
248+
transformHitTests: transformHitTests,
211249
);
212250

213251
/// Applies a [TranslateEffect] to a [Widget] with a default animation
214252
/// to slide this widget out to the bottom.
215253
Widget slideOutToBottom({
216254
double? value,
217255
bool fractional = false,
256+
bool transformHitTests = false,
218257
}) =>
219258
slideOut(
220259
Offset(0, value ?? (fractional ? 1 : _kDefaultSlideOffset)),
221260
fractional: fractional,
261+
transformHitTests: transformHitTests,
222262
);
223263
}
224264

@@ -231,15 +271,22 @@ class TranslateEffect extends Effect {
231271
/// of the [Widget]'s size. If false, the [offset] is a fixed amount.
232272
final bool fractional;
233273

274+
/// Whether the [Widget] should be hit tested.
275+
final bool transformHitTests;
276+
234277
/// Creates a [TranslateEffect] with the given [offset] and [fractional].
235278
TranslateEffect({
236279
this.offset = Offset.zero,
237280
this.fractional = false,
281+
this.transformHitTests = false,
238282
});
239283

240284
@override
241285
TranslateEffect lerp(covariant TranslateEffect other, double value) {
242286
return TranslateEffect(
287+
fractional: other.fractional,
288+
transformHitTests:
289+
value < 0.5 ? transformHitTests : other.transformHitTests,
243290
offset: Offset.lerp(offset, other.offset, value) ?? Offset.zero,
244291
);
245292
}
@@ -249,11 +296,13 @@ class TranslateEffect extends Effect {
249296
if (fractional) {
250297
return FractionalTranslation(
251298
translation: offset,
299+
transformHitTests: transformHitTests,
252300
child: child,
253301
);
254302
} else {
255303
return Transform.translate(
256304
offset: offset,
305+
transformHitTests: transformHitTests,
257306
child: child,
258307
);
259308
}

0 commit comments

Comments
 (0)