Fix CupertinoTextField incorrect background color when disabled (#78058)

This commit is contained in:
Haruka Ma 2021-03-14 07:33:07 +09:00 committed by GitHub
parent c3d0f60407
commit 9f4e132fb8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 79 additions and 1 deletions

View file

@ -1137,7 +1137,7 @@ class _CupertinoTextFieldState extends State<CupertinoTextField> with Restoratio
final BoxDecoration? effectiveDecoration = widget.decoration?.copyWith( final BoxDecoration? effectiveDecoration = widget.decoration?.copyWith(
border: resolvedBorder, border: resolvedBorder,
color: enabled ? decorationColor : (decorationColor ?? disabledColor), color: enabled ? decorationColor : disabledColor,
); );
final Color selectionColor = CupertinoTheme.of(context).primaryColor.withOpacity(0.2); final Color selectionColor = CupertinoTheme.of(context).primaryColor.withOpacity(0.2);

View file

@ -4617,4 +4617,82 @@ void main() {
expect(state.currentTextEditingValue.composing, TextRange.empty); expect(state.currentTextEditingValue.composing, TextRange.empty);
}); });
}); });
testWidgets('disabled widget changes background color',
(WidgetTester tester) async {
await tester.pumpWidget(
const CupertinoApp(
home: Center(
child: CupertinoTextField(
enabled: false,
),
),
),
);
BoxDecoration decoration = tester
.widget<DecoratedBox>(
find.descendant(
of: find.byType(CupertinoTextField),
matching: find.byType(DecoratedBox),
),
)
.decoration as BoxDecoration;
expect(
decoration.color!.value,
0xFFFAFAFA,
);
await tester.pumpWidget(
const CupertinoApp(
home: Center(
child: CupertinoTextField(
enabled: true,
),
),
),
);
decoration = tester
.widget<DecoratedBox>(
find.descendant(
of: find.byType(CupertinoTextField),
matching: find.byType(DecoratedBox),
),
)
.decoration as BoxDecoration;
expect(
decoration.color!.value,
CupertinoColors.white.value,
);
await tester.pumpWidget(
const CupertinoApp(
theme: CupertinoThemeData(
brightness: Brightness.dark,
),
home: Center(
child: CupertinoTextField(
enabled: false,
),
),
),
);
decoration = tester
.widget<DecoratedBox>(
find.descendant(
of: find.byType(CupertinoTextField),
matching: find.byType(DecoratedBox),
),
)
.decoration as BoxDecoration;
expect(
decoration.color!.value,
0xFF050505,
);
});
} }