app_city_search_bar.dart 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/services.dart';
  3. import 'package:liftmanager/routers/fluro_navigator.dart';
  4. import 'package:liftmanager/internal/search/search_router.dart';
  5. import 'package:liftmanager/res/colors.dart';
  6. import 'package:liftmanager/res/dimens.dart';
  7. import 'package:liftmanager/res/gaps.dart';
  8. import 'package:liftmanager/utils/theme_utils.dart';
  9. import 'package:liftmanager/widgets/load_image.dart';
  10. /// 自定义AppBar
  11. class AppCitySearchAppBar extends StatelessWidget
  12. implements PreferredSizeWidget {
  13. const AppCitySearchAppBar(
  14. {Key key,
  15. this.city: "",
  16. this.centerTitle: "",
  17. this.actionName: "",
  18. this.actionIcon: "",
  19. this.backImg: "assets/images/icon_back.png",
  20. this.onPressed,
  21. this.isBack: true})
  22. : super(key: key);
  23. final String city;
  24. final String centerTitle;
  25. final String backImg;
  26. final String actionName;
  27. final String actionIcon;
  28. final VoidCallback onPressed;
  29. final bool isBack;
  30. @override
  31. Widget build(BuildContext context) {
  32. bool isDark = ThemeUtils.isDark(context);
  33. return AnnotatedRegion<SystemUiOverlayStyle>(
  34. value: SystemUiOverlayStyle.light,
  35. child: Container(
  36. color: isDark?Colours.dark_appbar_main:Colours.appbar_main,
  37. // decoration: BoxDecoration(
  38. // gradient: const LinearGradient(
  39. // colors: [Color(0xFF00D9FF), Color(0xFF0287FF)]),
  40. // ),
  41. child: SafeArea(
  42. child: Stack(
  43. alignment: Alignment.centerLeft,
  44. children: <Widget>[
  45. Column(
  46. mainAxisAlignment: MainAxisAlignment.center,
  47. children: <Widget>[
  48. Container(
  49. alignment: Alignment.centerLeft,
  50. width: double.infinity,
  51. child: Text(city,
  52. overflow: TextOverflow.ellipsis,
  53. style: TextStyle(
  54. fontSize: Dimens.font_sp16, color: Colors.white)),
  55. padding: const EdgeInsets.symmetric(horizontal: 15.0),
  56. ),
  57. ],
  58. ),
  59. // Column(
  60. // mainAxisAlignment: MainAxisAlignment.center,
  61. // children: <Widget>[
  62. // Container(
  63. // padding: const EdgeInsets.only(left: 50.0),
  64. // child: Icon(
  65. // Icons.keyboard_arrow_down,
  66. // size: 20,
  67. // color: Colors.white,
  68. // )),
  69. // ],
  70. // ),
  71. GestureDetector(
  72. onTap: () {
  73. NavigatorUtils.push(context, SearchRouter.searchPage);
  74. },
  75. child: Container(
  76. height: 35,
  77. margin: const EdgeInsets.only(left: 75.0, right: 15),
  78. decoration: BoxDecoration(
  79. color: Color(0x33FFFFFF),
  80. borderRadius: BorderRadius.circular(17.5)),
  81. child: Row(
  82. crossAxisAlignment: CrossAxisAlignment.center,
  83. mainAxisAlignment: MainAxisAlignment.start,
  84. children: <Widget>[
  85. SizedBox(
  86. width: 16,
  87. ),
  88. Icon(
  89. Icons.search,
  90. color: Colors.white,
  91. ),
  92. Text(
  93. "搜索你想要的关键词",
  94. style: TextStyle(color: Colors.white),
  95. )
  96. ],
  97. ),
  98. ))
  99. ],
  100. ),
  101. ),
  102. // ),
  103. ),
  104. );
  105. }
  106. @override
  107. Size get preferredSize => Size.fromHeight(48.0);
  108. }