From 1774693086f86495c8c3dbf7c3f649419852fdfb Mon Sep 17 00:00:00 2001 From: toly <1981462002@qq.com> Date: Sat, 18 Apr 2020 05:35:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=85=8D=E8=89=B2=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=B7=A6=E5=8F=B3=E8=8F=9C=E5=8D=95=E6=A0=8F?= =?UTF-8?q?=E5=BC=B9=E5=87=BA=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 ++++++ lib/views/pages/collect/collect_page.dart | 2 + .../pages/navigation/unit_bottom_bar.dart | 38 +++++++++++++------ .../pages/navigation/unit_navigation.dart | 25 ++++++------ 4 files changed, 51 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 14f90d0..94a6e6b 100644 --- a/README.md +++ b/README.md @@ -188,3 +188,14 @@ fixed " 主页item双击黑屏问题。 feature " 支持详情页【相关链接的栈管理】, " 即: 点击多个链接,不直接返回主页. ``` + +--- + + - `2020-4-28` + +``` +feature " 小彩蛋: 【长按】底部栏【最左侧按钮】,打开左边菜单栏 + " 【长按】底部栏【最右侧按钮】,打开右边菜单栏 + +fixed " 收藏集的AppBar背景色同主页选中色。 +``` \ No newline at end of file diff --git a/lib/views/pages/collect/collect_page.dart b/lib/views/pages/collect/collect_page.dart index 0d74611..e949a06 100644 --- a/lib/views/pages/collect/collect_page.dart +++ b/lib/views/pages/collect/collect_page.dart @@ -6,6 +6,7 @@ import 'package:flutter_unit/blocs/collect/collect_event.dart'; import 'package:flutter_unit/blocs/collect/collect_state.dart'; import 'package:flutter_unit/blocs/detail/detail_bloc.dart'; import 'package:flutter_unit/blocs/detail/detail_event.dart'; +import 'package:flutter_unit/blocs/widgets/home_bloc.dart'; import 'package:flutter_unit/model/widget_model.dart'; import 'package:flutter_unit/views/items/collect_widget_list_item.dart'; @@ -24,6 +25,7 @@ class CollectPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( + backgroundColor: BlocProvider.of(context).state.homeColor, title: Text('收藏集'), actions: [ IconButton(icon: Icon(Icons.add,size: 30,), onPressed: (){ diff --git a/lib/views/pages/navigation/unit_bottom_bar.dart b/lib/views/pages/navigation/unit_bottom_bar.dart index 9b81abe..61809b6 100644 --- a/lib/views/pages/navigation/unit_bottom_bar.dart +++ b/lib/views/pages/navigation/unit_bottom_bar.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; /// create by 张风捷特烈 on 2020-04-11 /// contact me by email 1981462002@qq.com -/// 说明: +/// 说明: class UnitBottomBar extends StatefulWidget { final Color color; @@ -11,8 +11,8 @@ class UnitBottomBar extends StatefulWidget { UnitBottomBar( {this.color = Colors.blue, - @required this.itemData, - @required this.onItemClick}); + @required this.itemData, + @required this.onItemClick}); @override _UnitBottomBarState createState() => _UnitBottomBarState(); @@ -30,24 +30,20 @@ class _UnitBottomBarState extends State { color: widget.color, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: widget.itemData.keys - .map((e) => _buildChild(info.indexOf(e), widget.color)) + children: info + .map((e) => _buildChild(context, info.indexOf(e), widget.color)) .toList(), )); } List get info => widget.itemData.keys.toList(); - Widget _buildChild(int i, Color color) { + Widget _buildChild(BuildContext context, int i, Color color) { var active = i == _position; bool left = i == 0; return GestureDetector( - onTap: () => setState(() { - _position = i; - if (widget.onItemClick != null) { - widget.onItemClick(_position); - } - }), + onTap: () => _tapTab(i), + onLongPress: () => _onLongPress(context, i), child: Material( elevation: 2, shape: RoundedRectangleBorder( @@ -74,4 +70,22 @@ class _UnitBottomBarState extends State { ), ); } + + _tapTab(int i) { + setState(() { + _position = i; + if (widget.onItemClick != null) { + widget.onItemClick(_position); + } + }); + } + + _onLongPress(BuildContext context, int i) { + if (i == 0) { + Scaffold.of(context).openDrawer(); + } + if (i == 1) { + Scaffold.of(context).openEndDrawer(); + } + } } diff --git a/lib/views/pages/navigation/unit_navigation.dart b/lib/views/pages/navigation/unit_navigation.dart index 3fca728..891c113 100644 --- a/lib/views/pages/navigation/unit_navigation.dart +++ b/lib/views/pages/navigation/unit_navigation.dart @@ -4,8 +4,6 @@ import 'package:flutter_unit/app/res/cons.dart'; import 'package:flutter_unit/app/router.dart'; import 'package:flutter_unit/blocs/collect/collect_bloc.dart'; import 'package:flutter_unit/blocs/collect/collect_event.dart'; -import 'package:flutter_unit/blocs/global/global_bloc.dart'; -import 'package:flutter_unit/blocs/global/global_state.dart'; import 'package:flutter_unit/blocs/widgets/home_bloc.dart'; import 'package:flutter_unit/blocs/widgets/home_state.dart'; import 'package:flutter_unit/views/pages/navigation/unit_bottom_bar.dart'; @@ -36,19 +34,14 @@ class _UnitNavigationState extends State { @override Widget build(BuildContext context) { return BlocBuilder( - builder: (_, state) => - Scaffold( + builder: (_, state) => Scaffold( drawer: HomeDrawer(), //左滑页 endDrawer: HomeDrawer(), //右滑页 floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, - floatingActionButton: FloatingActionButton( - backgroundColor: state.homeColor, - child: Icon(Icons.search), - onPressed: () => Navigator.of(context).pushNamed(Router.search), - ), + floatingActionButton: _buildSearchButton(state.homeColor), body: PageView( physics: NeverScrollableScrollPhysics(), //使用PageView实现页面的切换 @@ -61,9 +54,16 @@ class _UnitNavigationState extends State { bottomNavigationBar: UnitBottomBar( color: state.homeColor, itemData: Cons.ICONS_MAP, - onItemClick: _onTapNav) - ) - ); + onItemClick: _onTapNav))); + } + + Widget _buildSearchButton(Color color) { + return Builder( + builder: (context) => FloatingActionButton( + backgroundColor: color, + child: Icon(Icons.search), + onPressed: () => Navigator.of(context).pushNamed(Router.search), + )); } _onTapNav(int index) { @@ -74,4 +74,3 @@ class _UnitNavigationState extends State { } } } -