From 19c8bcec19c5b8b7485728fd6013e5e295fbecca Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 3 Nov 2025 01:12:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A1=B6=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/search.png | Bin 0 -> 1141 bytes lib/components/home_appbar.dart | 101 ++++++++++++++++++-------------- lib/pages/chat_page.dart | 14 ++++- lib/pages/live_page.dart | 24 +++++++- 4 files changed, 93 insertions(+), 46 deletions(-) create mode 100644 assets/search.png diff --git a/assets/search.png b/assets/search.png new file mode 100644 index 0000000000000000000000000000000000000000..b5bd0a4799e17328a0fb7e6185063882c0803a62 GIT binary patch literal 1141 zcmV-*1d98KP)Px#1am@3R0s$N2z&@+hyVZtA4x<(RA_aFX6B&xk+;p%O`1a zl8_zFDYB5SQFS57MHq$weN6l|bu19`JYQfcuo9${>M!sM00f|{N8@J=0NwB}093$- zF-BuWh$UYprBoeo82(hb@9BVME%LJoTO`$dajww;&8IQPrQSD-@LtM;0GfqlA+Z$k zEW%q7bupLtkJJfIQoak|ckY67AprGQ*EqNBN9KGU248*8SVNDIxB@OhjuCtiLLof{ z=#w$eslu=bXPB@Sz%ez-?xj2oLb2Bpz;ntvQNjsigCwPt3h1@U^}m!KImNF@!rVoD z3sN~bMJrqxxbF-SX8P=vA3aI=j<`Q2`yYomhjbNs5F^_GjV-j4Qawr8ffsx@V)Nf&ZR}zx>q^5zqzt`q zLUu3ZVX%bY_@xokv;dkhNcwQ4;kvGMXt1kU0Iz&e0rbB6Gq-3M!O`@&ZQpzkCP6C_ z7$$*c@Yfi02k5nSK2(4V1+WQWip0qnVU3HLacV)33$Dx~E7v6Z3KOmLRqu z3ruBm;p226OyxK`NKxb5RJ8@D3d`r?74X0G^C6b|>~TwO)KegU(2uNKZWS=yxwx>S zG8NEnMHT=k_i?#ZK-ipZ?NUF=)@B@l_I>G^bw!!8GqLe~&o%kAA%KvDP0YIDm@^f@ z?M?kH!OaT6%>x1^Vxt3^tFAr=?DlJOOr6G1H5ZcO42vb@vDJMtH$jOsbZ_9&wSys|<4x<%= zY^U&c0G!+QZMc6$2fThGvJk*a+qPfC^ZdoPJfh_^wQwvknXtR?+UB0nt;^~RN+uk- zfL?<*vjxgVlynkdjt|Xk?p~n(nk2nAVSC~6a3Q35yO>$H$vj9p$D}uHQEtsl z0Yp3E3V|AwGeL5Lc-yvLj6SI~pat-PzC&=woU^OzTG>5Y*?D-x2LByEcTP*ioajB9 z@Q9q|?g+>x^IX!45w>BGR|!HTckQK;?to?$!ajud({szyMACXQ!fPUh^j#1J_?`H7 zbGI}^VNH$c?!}~S5SrE}W1f=>kJ4cuUZ5{f^l*sr0s#L2rhY5v3jm)Q00000NkvXX Hu0mjf5sL~7 literal 0 HcmV?d00001 diff --git a/lib/components/home_appbar.dart b/lib/components/home_appbar.dart index 613acdc..2733128 100644 --- a/lib/components/home_appbar.dart +++ b/lib/components/home_appbar.dart @@ -5,7 +5,8 @@ class HomeAppbar extends StatefulWidget { final List topNav; final void Function(int) changeNav; - const HomeAppbar({super.key, required this.topNav, required this.changeNav}); + final Widget right; + const HomeAppbar({super.key, required this.topNav, required this.changeNav, this.right = const SizedBox()}); @override State createState() => _HomeAppbarState(); @@ -20,55 +21,67 @@ class _HomeAppbarState extends State { return Container( padding: EdgeInsets.only(top: MediaQuery.of(context).padding.top), color: Colors.transparent, - child: Container( - height: ScreenUtil().setWidth(108), - padding: EdgeInsets.symmetric( - horizontal: ScreenUtil().setWidth(34)), - child: Stack( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, + child: Stack( + children: [ + Container( + height: ScreenUtil().setWidth(108), + padding: EdgeInsets.symmetric( + horizontal: ScreenUtil().setWidth(34)), + child: Stack( children: [ - ...widget.topNav.asMap().entries.map((entry){ - return InkWell( - onTap: (){ - active = entry.key; - widget.changeNav(active); - setState(() { + Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ...widget.topNav.asMap().entries.map((entry){ + return InkWell( + onTap: (){ + active = entry.key; + widget.changeNav(active); + setState(() { - }); - }, - child: Container( - margin: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(27)), - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - entry.value, - style: TextStyle( - fontSize: active == entry.key ? 38.w : 34.w, - color: const Color.fromRGBO(51, 51, 51, 1), - fontWeight: active == entry.key ? FontWeight.w600 : FontWeight.w400 - ), + }); + }, + child: Container( + margin: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(27)), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + entry.value, + style: TextStyle( + fontSize: active == entry.key ? 38.w : 34.w, + color: const Color.fromRGBO(51, 51, 51, 1), + fontWeight: active == entry.key ? FontWeight.w600 : FontWeight.w400 + ), + ), + SizedBox(height: ScreenUtil().setWidth(9),), + if(active == entry.key) Image.asset( + "assets/home_top_active.png", + width: ScreenUtil().setWidth(25), + ) + ], ), - SizedBox(height: ScreenUtil().setWidth(9),), - if(active == entry.key) Image.asset( - "assets/home_top_active.png", - width: ScreenUtil().setWidth(25), - ) - ], - ), - ), - ); - }), + ), + ); + }), + ], + ) ], - ) - ], - ), + ), + ), + Positioned( + right: 0, + top: 0, + bottom: 0, + child: Center( + child: widget.right, + ), + ) + ], ), ); } diff --git a/lib/pages/chat_page.dart b/lib/pages/chat_page.dart index 0b855ea..9cbf7b4 100644 --- a/lib/pages/chat_page.dart +++ b/lib/pages/chat_page.dart @@ -58,7 +58,19 @@ class _ChatPageState extends State { ), child: Column( children: [ - HomeAppbar(topNav: topNav, changeNav: changeNav,), + Container( + padding: EdgeInsets.symmetric(horizontal: 36.w), + child: HomeAppbar(topNav: topNav, changeNav: changeNav, right: InkWell( + onTap: (){ + print("12121"); + }, + child: Image.asset( + "assets/search.png", + width: 29.w, + height: 31.w, + ), + ),), + ), Container( width: 750.w, padding: EdgeInsets.only( diff --git a/lib/pages/live_page.dart b/lib/pages/live_page.dart index 637e5f1..fbd5efb 100644 --- a/lib/pages/live_page.dart +++ b/lib/pages/live_page.dart @@ -66,7 +66,29 @@ class _LivePageState extends State { ), child: Column( children: [ - HomeAppbar(topNav: topNav, changeNav: changeNav,), + HomeAppbar(topNav: topNav, changeNav: changeNav, right: InkWell( + onTap: (){ + print("12121"); + }, + child: Container( + width: 104.w, + height: 40.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(40.w)), + color: const Color.fromRGBO(108, 105, 244, 1) + ), + child: Center( + child: Text( + "申请红娘", + style: TextStyle( + fontSize: 20.w, + color: Colors.white, + fontWeight: FontWeight.w500 + ), + ), + ), + ), + ),), Container( width: 702.w, height: 91.w,