Fix lerping for NavigationRailThemeData
icon themes (#120066)
* Fix lerping for NavigationRail icon themes * fix typo
This commit is contained in:
parent
5dbd281012
commit
f05a555bcb
@ -151,8 +151,10 @@ class NavigationRailThemeData with Diagnosticable {
|
|||||||
elevation: lerpDouble(a?.elevation, b?.elevation, t),
|
elevation: lerpDouble(a?.elevation, b?.elevation, t),
|
||||||
unselectedLabelTextStyle: TextStyle.lerp(a?.unselectedLabelTextStyle, b?.unselectedLabelTextStyle, t),
|
unselectedLabelTextStyle: TextStyle.lerp(a?.unselectedLabelTextStyle, b?.unselectedLabelTextStyle, t),
|
||||||
selectedLabelTextStyle: TextStyle.lerp(a?.selectedLabelTextStyle, b?.selectedLabelTextStyle, t),
|
selectedLabelTextStyle: TextStyle.lerp(a?.selectedLabelTextStyle, b?.selectedLabelTextStyle, t),
|
||||||
unselectedIconTheme: IconThemeData.lerp(a?.unselectedIconTheme, b?.unselectedIconTheme, t),
|
unselectedIconTheme: a?.unselectedIconTheme == null && b?.unselectedIconTheme == null
|
||||||
selectedIconTheme: IconThemeData.lerp(a?.selectedIconTheme, b?.selectedIconTheme, t),
|
? null : IconThemeData.lerp(a?.unselectedIconTheme, b?.unselectedIconTheme, t),
|
||||||
|
selectedIconTheme: a?.selectedIconTheme == null && b?.selectedIconTheme == null
|
||||||
|
? null : IconThemeData.lerp(a?.selectedIconTheme, b?.selectedIconTheme, t),
|
||||||
groupAlignment: lerpDouble(a?.groupAlignment, b?.groupAlignment, t),
|
groupAlignment: lerpDouble(a?.groupAlignment, b?.groupAlignment, t),
|
||||||
labelType: t < 0.5 ? a?.labelType : b?.labelType,
|
labelType: t < 0.5 ? a?.labelType : b?.labelType,
|
||||||
useIndicator: t < 0.5 ? a?.useIndicator : b?.useIndicator,
|
useIndicator: t < 0.5 ? a?.useIndicator : b?.useIndicator,
|
||||||
|
@ -227,6 +227,14 @@ void main() {
|
|||||||
expect(_indicatorDecoration(tester)?.color, indicatorColor);
|
expect(_indicatorDecoration(tester)?.color, indicatorColor);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Regression test for https://github.com/flutter/flutter/issues/118618.
|
||||||
|
testWidgets('NavigationRailThemeData lerps correctly with null iconThemes', (WidgetTester tester) async {
|
||||||
|
final NavigationRailThemeData lerp = NavigationRailThemeData.lerp(const NavigationRailThemeData(), const NavigationRailThemeData(), 0.5)!;
|
||||||
|
|
||||||
|
expect(lerp.selectedIconTheme, isNull);
|
||||||
|
expect(lerp.unselectedIconTheme, isNull);
|
||||||
|
});
|
||||||
|
|
||||||
testWidgets('Default debugFillProperties', (WidgetTester tester) async {
|
testWidgets('Default debugFillProperties', (WidgetTester tester) async {
|
||||||
final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder();
|
final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder();
|
||||||
const NavigationRailThemeData().debugFillProperties(builder);
|
const NavigationRailThemeData().debugFillProperties(builder);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user