order_home_screen.dart 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_svg/svg.dart';
  3. import 'package:fooddeliveryapp/models/product.dart';
  4. import 'package:fooddeliveryapp/screen/cart.dart';
  5. import 'package:fooddeliveryapp/constants.dart';
  6. import 'package:fooddeliveryapp/screen/order/components/body.dart';
  7. class HomeSrcreen extends StatelessWidget {
  8. static const routeName = '/order';
  9. final int index;
  10. //构造函数 同时传入桌号
  11. HomeSrcreen({Key key, @required this.index}) : super(key: key);
  12. @override
  13. Widget build(BuildContext context) {
  14. return DefaultTabController(
  15. length: getMyTabs().length,
  16. child: Scaffold(
  17. appBar: buildAppBar(context),
  18. body: Body(),
  19. ),
  20. );
  21. }
  22. AppBar buildAppBar(BuildContext context) {
  23. return AppBar(
  24. backgroundColor: Colors.white,
  25. elevation: 0,
  26. title: Padding(
  27. padding: const EdgeInsets.symmetric(horizontal: kDefaultPaddin),
  28. child: Text(
  29. "口之福火锅",
  30. style: Theme.of(context)
  31. .textTheme
  32. .headline5
  33. .copyWith(fontWeight: FontWeight.bold),
  34. ),
  35. ),
  36. leading: IconButton(
  37. icon: SvgPicture.asset("assets/icons/back.svg"),
  38. onPressed: () {},
  39. ),
  40. actions: <Widget>[
  41. IconButton(
  42. icon: SvgPicture.asset(
  43. "assets/icons/search.svg",
  44. // By default our icon color is white
  45. color: kTextColor,
  46. ),
  47. onPressed: () {},
  48. ),
  49. IconButton(
  50. icon: SvgPicture.asset(
  51. "assets/icons/cart.svg",
  52. // By default our icon color is white
  53. color: kTextColor,
  54. ),
  55. onPressed: () {
  56. Navigator.pushNamed(context, OrderCart.routeName, arguments: index);
  57. },
  58. ),
  59. SizedBox(width: kDefaultPaddin / 2)
  60. ],
  61. bottom: TabBar(tabs: getMyTabs().map((e) => e.tab).toList()),
  62. );
  63. }
  64. }
  65. List<MyTab> getMyTabs() {
  66. return [
  67. MyTab(
  68. Tab(
  69. child: Text(
  70. "功夫锅底",
  71. style: TextStyle(color: Colors.black),
  72. ),
  73. ),
  74. Menu(
  75. productsList: products,
  76. ),
  77. ),
  78. MyTab(
  79. Tab(
  80. child: Text(
  81. "飘香卤味",
  82. style: TextStyle(color: Colors.black),
  83. ),
  84. ),
  85. // Icon(Icons.directions_transit, color: Colors.pink, size: 60),
  86. Menu(productsList: products),
  87. ),
  88. MyTab(
  89. Tab(
  90. child: Text(
  91. "安心肉品",
  92. style: TextStyle(color: Colors.black),
  93. ),
  94. ),
  95. // Icon(Icons.directions_bike, color: Colors.pink, size: 60),
  96. Menu(productsList: products2),
  97. )
  98. ];
  99. }
  100. /// 因此抽象成独立的类
  101. class MyTab {
  102. Tab tab;
  103. Widget body;
  104. MyTab(this.tab, this.body);
  105. }