search.dart 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import 'package:flutter/material.dart';
  2. import 'package:twong/utils/index.dart';
  3. import 'package:twong/router/index.dart';
  4. import 'package:twong/config/style.dart';
  5. import 'package:twong/widgets/search_bar.dart';
  6. class SearchPage extends StatefulWidget {
  7. @override
  8. State<StatefulWidget> createState() {
  9. return _SearchPageState();
  10. }
  11. }
  12. class _SearchPageState extends State<SearchPage> {
  13. _doSearch(String text) {
  14. if (text.trim() == '') return;
  15. print('search context: ' + text);
  16. Navigator.pushNamed(context, RouteNames.productList, arguments: text);
  17. }
  18. Widget _buildItem (String text) {
  19. return ActionChip (
  20. label: new Text(text),
  21. onPressed: () {
  22. _doSearch(text);
  23. },
  24. );
  25. }
  26. Widget _buildSearchHistory () {
  27. var data = ['口红', 'Gtx1080笔记本电脑', 'Gtx1080','笔记本电脑', 'Gtx1080','笔记本电脑', 'Gtx1080',
  28. '笔记本电脑', 'Gtx1080笔记本电脑', 'Gtx1080','笔记本电脑', 'Gtx1080','笔记本电脑', 'Gtx1080'];
  29. List<Widget> widgets = [];
  30. for(var item in data) {
  31. widgets.add(_buildItem(item));
  32. }
  33. return Wrap(
  34. spacing: 8.0, // 主轴(水平)方向间距
  35. children: widgets,
  36. alignment: WrapAlignment.start, //沿主轴方向居中
  37. );
  38. }
  39. Widget _buildSearchHot () {
  40. var data = ['笔记本电脑', 'Gtx1080', '笔记本电脑', 'Gtx1080笔记本电脑', 'Gtx1080','笔记本电脑',
  41. 'Gtx1080','笔记本电脑', 'Gtx1080', '笔记本电脑', 'Gtx1080笔记本电脑', 'Gtx1080','笔记本电脑', 'Gtx1080','笔记本电脑', 'Gtx1080'];
  42. List<Widget> widgets = [];
  43. for(var item in data) {
  44. widgets.add(_buildItem(item));
  45. }
  46. return Wrap(
  47. spacing: 8.0, // 主轴(水平)方向间距
  48. runSpacing: 4.0, // 纵轴(垂直)方向间距
  49. alignment: WrapAlignment.center, //沿主轴方向居中
  50. children: widgets,
  51. );
  52. }
  53. @override
  54. Widget build(BuildContext context) {
  55. return Scaffold(
  56. appBar: SearchBar(null, enable: true, doSearch: _doSearch, autoFocus: true),
  57. body: SingleChildScrollView(
  58. child: Container(
  59. padding: EdgeInsets.only(left: 14, top: 20),
  60. child: Column(
  61. crossAxisAlignment: CrossAxisAlignment.start,
  62. children: <Widget>[
  63. Text('历史搜索', style: TextStyle(fontWeight: FontWeight.bold),),
  64. Container(
  65. child: _buildSearchHistory(),
  66. ),
  67. Text('热门搜索', style: TextStyle(fontWeight: FontWeight.bold),),
  68. Container(
  69. child: _buildSearchHot(),
  70. ),
  71. ],
  72. ),
  73. ),
  74. )
  75. );
  76. }
  77. }