search.dart 2.6 KB

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