Skip to content

Commit bef6f30

Browse files
authored
Fixed an iconTheme lerping problem with ChipThemeData. (#112216)
1 parent f16fe11 commit bef6f30

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

packages/flutter/lib/src/material/chip_theme.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,9 @@ class ChipThemeData with Diagnosticable {
510510
brightness: t < 0.5 ? a?.brightness ?? Brightness.light : b?.brightness ?? Brightness.light,
511511
elevation: lerpDouble(a?.elevation, b?.elevation, t),
512512
pressElevation: lerpDouble(a?.pressElevation, b?.pressElevation, t),
513-
iconTheme: IconThemeData.lerp(a?.iconTheme, b?.iconTheme, t),
513+
iconTheme: a?.iconTheme != null || b?.iconTheme != null
514+
? IconThemeData.lerp(a?.iconTheme, b?.iconTheme, t)
515+
: null,
514516
);
515517
}
516518

packages/flutter/test/material/chip_theme_test.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,7 @@ void main() {
443443
expect(lerp.elevation, 3.0);
444444
expect(lerp.pressElevation, 7.0);
445445
expect(lerp.checkmarkColor, equals(middleGrey));
446+
expect(lerp.iconTheme, isNull);
446447

447448
expect(ChipThemeData.lerp(null, null, 0.25), isNull);
448449

@@ -466,6 +467,7 @@ void main() {
466467
expect(lerpANull25.elevation, 1.25);
467468
expect(lerpANull25.pressElevation, 2.5);
468469
expect(lerpANull25.checkmarkColor, equals(Colors.white.withAlpha(0x40)));
470+
expect(lerp.iconTheme, isNull);
469471

470472
final ChipThemeData lerpANull75 = ChipThemeData.lerp(null, chipThemeWhite, 0.75)!;
471473
expect(lerpANull75.backgroundColor, equals(Colors.black.withAlpha(0x17)));
@@ -508,6 +510,7 @@ void main() {
508510
expect(lerpBNull25.elevation, 0.75);
509511
expect(lerpBNull25.pressElevation, 3.0);
510512
expect(lerpBNull25.checkmarkColor, equals(Colors.black.withAlpha(0xbf)));
513+
expect(lerp.iconTheme, isNull);
511514

512515
final ChipThemeData lerpBNull75 = ChipThemeData.lerp(chipThemeBlack, null, 0.75)!;
513516
expect(lerpBNull75.backgroundColor, equals(Colors.white.withAlpha(0x08)));
@@ -529,6 +532,7 @@ void main() {
529532
expect(lerpBNull75.elevation, 0.25);
530533
expect(lerpBNull75.pressElevation, 1.0);
531534
expect(lerpBNull75.checkmarkColor, equals(Colors.black.withAlpha(0x40)));
535+
expect(lerp.iconTheme, isNull);
532536
});
533537

534538
testWidgets('Chip uses stateful color from chip theme', (WidgetTester tester) async {

0 commit comments

Comments
 (0)