Commit 28bfbd6c authored by Michael Beckler's avatar Michael Beckler Committed by Adam Barth

Changed DefaultTextStyle to consider the TextTheme defined in the context for...

Changed DefaultTextStyle to consider the TextTheme defined in the context for Bottom Nav Bar (#7042)

* Changed DefaultTextStyle to consider the TextTheme defined in the context

* added regression test for bottom nav bar text themes

* added second regression test for fixed navbar
parent ee5a80a6
...@@ -10,3 +10,4 @@ Wyatt Arent <hello@wyatt.ninja> ...@@ -10,3 +10,4 @@ Wyatt Arent <hello@wyatt.ninja>
Michael Perrotte <mikemimik@gmail.com> Michael Perrotte <mikemimik@gmail.com>
Günter Zöchbauer <guenter@gzoechbauer.com> Günter Zöchbauer <guenter@gzoechbauer.com>
Raju Bitter <rajubitter@gmail.com> Raju Bitter <rajubitter@gmail.com>
Michael Beckler <mcbeckler@gmail.com>
...@@ -341,7 +341,8 @@ class BottomNavigationBarState extends State<BottomNavigationBar> with TickerPro ...@@ -341,7 +341,8 @@ class BottomNavigationBarState extends State<BottomNavigationBar> with TickerPro
alignment: FractionalOffset.bottomCenter, alignment: FractionalOffset.bottomCenter,
child: new Container( child: new Container(
margin: const EdgeInsets.only(bottom: 10.0), margin: const EdgeInsets.only(bottom: 10.0),
child: new DefaultTextStyle( child: new DefaultTextStyle.merge(
context: context,
style: new TextStyle( style: new TextStyle(
fontSize: 14.0, fontSize: 14.0,
color: colorTween.evaluate(animations[i]), color: colorTween.evaluate(animations[i]),
...@@ -411,7 +412,8 @@ class BottomNavigationBarState extends State<BottomNavigationBar> with TickerPro ...@@ -411,7 +412,8 @@ class BottomNavigationBarState extends State<BottomNavigationBar> with TickerPro
margin: const EdgeInsets.only(bottom: 10.0), margin: const EdgeInsets.only(bottom: 10.0),
child: new FadeTransition( child: new FadeTransition(
opacity: animations[i], opacity: animations[i],
child: new DefaultTextStyle( child: new DefaultTextStyle.merge(
context: context,
style: new TextStyle( style: new TextStyle(
fontSize: 14.0, fontSize: 14.0,
color: Colors.white color: Colors.white
......
...@@ -164,4 +164,80 @@ void main() { ...@@ -164,4 +164,80 @@ void main() {
actions = tester.renderObjectList(find.byType(InkResponse)); actions = tester.renderObjectList(find.byType(InkResponse));
expect(actions.elementAt(3).localToGlobal(Point.origin), equals(originalOrigin)); expect(actions.elementAt(3).localToGlobal(Point.origin), equals(originalOrigin));
}); });
testWidgets('BottomNavigationBar inherits shadowed app theme for shifting navbar', (WidgetTester tester) async {
await tester.pumpWidget(
new MaterialApp(
theme: new ThemeData(brightness: Brightness.light),
home: new Theme(
data: new ThemeData(brightness: Brightness.dark),
child: new Scaffold(
bottomNavigationBar: new BottomNavigationBar(
type: BottomNavigationBarType.shifting,
labels: <DestinationLabel>[
new DestinationLabel(
icon: new Icon(Icons.ac_unit),
title: new Text('AC')
),
new DestinationLabel(
icon: new Icon(Icons.access_alarm),
title: new Text('Alarm')
),
new DestinationLabel(
icon: new Icon(Icons.access_time),
title: new Text('Time')
),
new DestinationLabel(
icon: new Icon(Icons.add),
title: new Text('Add')
)
]
)
)
)
)
);
await tester.tap(find.text('Alarm'));
await tester.pump(const Duration(seconds: 1));
expect(Theme.of(tester.element(find.text('Alarm'))).brightness, equals(Brightness.dark));
});
testWidgets('BottomNavigationBar inherits shadowed app theme for fixed navbar', (WidgetTester tester) async {
await tester.pumpWidget(
new MaterialApp(
theme: new ThemeData(brightness: Brightness.light),
home: new Theme(
data: new ThemeData(brightness: Brightness.dark),
child: new Scaffold(
bottomNavigationBar: new BottomNavigationBar(
type: BottomNavigationBarType.fixed,
labels: <DestinationLabel>[
new DestinationLabel(
icon: new Icon(Icons.ac_unit),
title: new Text('AC')
),
new DestinationLabel(
icon: new Icon(Icons.access_alarm),
title: new Text('Alarm')
),
new DestinationLabel(
icon: new Icon(Icons.access_time),
title: new Text('Time')
),
new DestinationLabel(
icon: new Icon(Icons.add),
title: new Text('Add')
)
]
)
)
)
)
);
await tester.tap(find.text('Alarm'));
await tester.pump(const Duration(seconds: 1));
expect(Theme.of(tester.element(find.text('Alarm'))).brightness, equals(Brightness.dark));
});
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment