mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This reverts commit e3f8d0554089a0c391ff8078af42e1ae2ba32e22.
This commit is contained in:
parent
2efbc11b7a
commit
3932ffb1cd
@ -198,9 +198,6 @@ abstract class SearchDelegate<T> {
|
||||
primaryIconTheme: theme.primaryIconTheme.copyWith(color: Colors.grey),
|
||||
primaryColorBrightness: Brightness.light,
|
||||
primaryTextTheme: theme.textTheme,
|
||||
inputDecorationTheme: theme.inputDecorationTheme.copyWith(
|
||||
border: InputBorder.none,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@ -503,24 +500,28 @@ class _SearchPageState<T> extends State<_SearchPage<T>> {
|
||||
namesRoute: true,
|
||||
label: routeName,
|
||||
child: Scaffold(
|
||||
appBar: _ThemedPreferredSizeWidget(
|
||||
theme: theme,
|
||||
child: AppBar(
|
||||
leading: widget.delegate.buildLeading(context),
|
||||
title: TextField(
|
||||
controller: widget.delegate._queryTextController,
|
||||
focusNode: focusNode,
|
||||
textInputAction: widget.delegate.textInputAction,
|
||||
keyboardType: widget.delegate.keyboardType,
|
||||
onSubmitted: (String _) {
|
||||
widget.delegate.showResults(context);
|
||||
},
|
||||
decoration: InputDecoration(
|
||||
hintText: searchFieldLabel,
|
||||
),
|
||||
appBar: AppBar(
|
||||
backgroundColor: theme.primaryColor,
|
||||
iconTheme: theme.primaryIconTheme,
|
||||
textTheme: theme.primaryTextTheme,
|
||||
brightness: theme.primaryColorBrightness,
|
||||
leading: widget.delegate.buildLeading(context),
|
||||
title: TextField(
|
||||
controller: widget.delegate._queryTextController,
|
||||
focusNode: focusNode,
|
||||
style: theme.textTheme.title,
|
||||
textInputAction: widget.delegate.textInputAction,
|
||||
keyboardType: widget.delegate.keyboardType,
|
||||
onSubmitted: (String _) {
|
||||
widget.delegate.showResults(context);
|
||||
},
|
||||
decoration: InputDecoration(
|
||||
border: InputBorder.none,
|
||||
hintText: searchFieldLabel,
|
||||
hintStyle: theme.inputDecorationTheme.hintStyle,
|
||||
),
|
||||
actions: widget.delegate.buildActions(context),
|
||||
),
|
||||
actions: widget.delegate.buildActions(context),
|
||||
),
|
||||
body: AnimatedSwitcher(
|
||||
duration: const Duration(milliseconds: 300),
|
||||
@ -530,21 +531,3 @@ class _SearchPageState<T> extends State<_SearchPage<T>> {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _ThemedPreferredSizeWidget extends StatelessWidget implements PreferredSizeWidget {
|
||||
const _ThemedPreferredSizeWidget({ this.theme, this.child });
|
||||
|
||||
final ThemeData theme;
|
||||
final PreferredSizeWidget child;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Theme(
|
||||
data: theme,
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Size get preferredSize => child.preferredSize;
|
||||
}
|
||||
|
||||
@ -100,13 +100,9 @@ void main() {
|
||||
await tester.tap(find.byTooltip('Search'));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(tester.widget<RichText>(
|
||||
find.descendant(
|
||||
of: find.byType(TextField),
|
||||
matching: find.byType(RichText),
|
||||
)).text.style.color,
|
||||
Colors.green,
|
||||
);
|
||||
final TextField textField = tester.widget<TextField>(find.byType(TextField));
|
||||
final Color hintColor = textField.decoration.hintStyle.color;
|
||||
expect(hintColor, delegate.hintTextColor);
|
||||
});
|
||||
|
||||
testWidgets('Requests suggestions', (WidgetTester tester) async {
|
||||
@ -642,49 +638,6 @@ void main() {
|
||||
semantics.dispose();
|
||||
});
|
||||
});
|
||||
|
||||
testWidgets('delegate appBarTheme is applied to the AppBar color on the search page', (WidgetTester tester) async {
|
||||
final _AppBarThemeTestDelegate delegate = _AppBarThemeTestDelegate(
|
||||
appBarColor: Colors.green,
|
||||
);
|
||||
await tester.pumpWidget(TestHomePage(
|
||||
delegate: delegate,
|
||||
));
|
||||
|
||||
// Open the search page.
|
||||
await tester.tap(find.byTooltip('Search'));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(tester.widget<Material>(
|
||||
find.descendant(
|
||||
of: find.byType(AppBar),
|
||||
matching: find.byType(Material),
|
||||
)).color,
|
||||
Colors.green,
|
||||
);
|
||||
});
|
||||
|
||||
testWidgets('delegate appBarTheme is applied to the enabledBorder of the TextField on the search page', (WidgetTester tester) async {
|
||||
final _AppBarThemeTestDelegate delegate = _AppBarThemeTestDelegate(
|
||||
enabledBorder: InputBorder.none,
|
||||
);
|
||||
await tester.pumpWidget(TestHomePage(
|
||||
delegate: delegate,
|
||||
));
|
||||
|
||||
// Open the search page.
|
||||
await tester.tap(find.byTooltip('Search'));
|
||||
await tester.pumpAndSettle();
|
||||
await tester.enterText(find.byType(TextField), 'abc');
|
||||
|
||||
expect(tester.widget<InputDecorator>(
|
||||
find.descendant(
|
||||
of: find.byType(AppBar),
|
||||
matching: find.byType(InputDecorator),
|
||||
)).decoration.enabledBorder,
|
||||
InputBorder.none,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
class TestHomePage extends StatelessWidget {
|
||||
@ -795,24 +748,3 @@ class _TestSearchDelegate extends SearchDelegate<String> {
|
||||
return actions;
|
||||
}
|
||||
}
|
||||
|
||||
class _AppBarThemeTestDelegate extends _TestSearchDelegate {
|
||||
_AppBarThemeTestDelegate({this.appBarColor, this.enabledBorder});
|
||||
|
||||
final Color appBarColor;
|
||||
final InputBorder enabledBorder;
|
||||
|
||||
@override
|
||||
ThemeData appBarTheme(BuildContext context) {
|
||||
final ThemeData theme = Theme.of(context);
|
||||
return theme.copyWith(
|
||||
primaryColor: appBarColor,
|
||||
appBarTheme: theme.appBarTheme.copyWith(
|
||||
color: appBarColor,
|
||||
),
|
||||
inputDecorationTheme: theme.inputDecorationTheme.copyWith(
|
||||
enabledBorder: enabledBorder,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user