手機直播原始碼,突出底部導航欄中間按鈕的樣式
手機直播原始碼,突出底部導航欄中間按鈕的樣式實現的相關程式碼
import 'package:app_bottom_navigation_bar/theme/my_theme.dart'; import 'package:app_bottom_navigation_bar/view/pages/home-page.dart'; import 'package:app_bottom_navigation_bar/view/pages/vedio_page.dart'; import 'package:app_bottom_navigation_bar/view/pages/message_page.dart'; import 'package:app_bottom_navigation_bar/view/pages/my_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'dart:math' as math; ///app底部導航欄設定 class AppRootPage extends StatefulWidget { const AppRootPage({Key? key}) : super(key: key); @override _AppRootPageState createState() => _AppRootPageState(); } class _AppRootPageState extends State<AppRootPage> { ///設定tab初始位置值 int actionTabs = 0; @override Widget build(BuildContext context) { return Scaffold( bottomNavigationBar: getFooter(), floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, floatingActionButton: getFloatingButton(), body: getMainBody(), ); } ///設定底部導航欄各個tab Widget getFooter() { return Container( width: double.infinity, height: 90, decoration: BoxDecoration( boxShadow: [ BoxShadow( color: MyTheme.grey.withOpacity(0.1), spreadRadius: 1, blurRadius: 20, offset: Offset(0, 1)), ], borderRadius: BorderRadius.circular(20), color: MyTheme.white, ), child: Padding( padding: const EdgeInsets.only(left: 30, right: 30, top: 20), child: Row( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Row( children: [ //使用GestureDetector包裹按鈕,達到點選響應效果 GestureDetector( onTap: () { setState(() { actionTabs = 0; }); }, //主頁tab child: Icon( Icons.home, size: 25, color: actionTabs == 0 ? MyTheme.primary : MyTheme.black, ), ), SizedBox( width: 55, ), GestureDetector( onTap: () { setState(() { actionTabs = 1; }); }, //資訊頁tab child: Icon( Icons.chat_bubble_outline, size: 25, color: actionTabs == 1 ? MyTheme.primary : MyTheme.black, ), ), ], ), Row( children: [ GestureDetector( onTap: () { setState(() { actionTabs = 3; }); }, //視訊頁tab child: Icon( Icons.play_arrow, size: 25, color: actionTabs == 3 ? MyTheme.primary : MyTheme.black, ), ), SizedBox( width: 55, ), GestureDetector( onTap: () { setState(() { actionTabs = 4; }); }, //我的頁面tab child: Icon( Icons.account_circle, size: 28, color: actionTabs == 4 ? MyTheme.primary : MyTheme.black, ) ) ] ) ] ) ) ); } ///底部按鈕導航的子頁面 Widget getMainBody() { return IndexedStack( index: actionTabs, children: [ //首頁 HomePage(), //資訊頁 Message(), //此處可再設定中控頁 Center( child: Container( width: 90, height: 90, decoration: BoxDecoration(boxShadow: [ BoxShadow( color: Colors.amber, spreadRadius: 2, blurRadius: 15, offset: Offset(0, 1)), ], color: Colors.amber, borderRadius: BorderRadius.circular(18)), child: Center( child: Text("華夏", style: MyTheme.style_mainContent_white), ), ) ), //視訊播放頁 VedioPage(), //我的頁面 MyPage() ] ); } ///設定底部居中大按鈕 Widget getFloatingButton() { //使用GestureDetector包裹按鈕,達到點選響應效果 return GestureDetector( onTap: () { setState(() { actionTabs = 2; }); }, //將中間黑色大按鈕形狀改變 child: Transform.rotate( angle: -math.pi / 4, child: Container( width: 60, height: 60, decoration: BoxDecoration(boxShadow: [ BoxShadow( color: MyTheme.grey.withOpacity(0.3), spreadRadius: 2, blurRadius: 15, offset: Offset(0, 1)), ], color: MyTheme.black, borderRadius: BorderRadius.circular(23)), child: Transform.rotate( angle: -math.pi / 4, child: Center( //圖示任你換 child: Icon( Icons.account_box, color: MyTheme.white, size: 26, )) ) ) ) ); } }
以上就是 手機直播原始碼,突出底部導航欄中間按鈕的樣式實現的相關程式碼,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2850109/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播小程式原始碼,配置tabbar底部導航欄原始碼tabBar
- 手機直播原始碼,Flutter 中的彈簧按鈕效果原始碼Flutter
- 直播系統程式碼,flutter手寫一個底部導航欄Flutter
- 直播app原始碼,全屏並且去掉底部虛擬導航欄APP原始碼
- 直播平臺原始碼,css移動端設定底部導航欄原始碼CSS
- 成品直播原始碼推薦,uni底部導航欄隱藏單個原始碼
- 直播網站原始碼,寫一個android底部導航欄框架網站原始碼Android框架
- 直播系統程式碼,自行更改導航欄樣式
- 談導航欄返回按鈕的替代方案
- iOS隱藏導航欄的返回按鈕iOS
- uniapp更改導航欄按鈕文字APP
- 手機直播原始碼,點選按鈕,立即回到頂部原始碼
- 直播app系統原始碼,底部彈框顯示,底部導航隱藏APP原始碼
- 手機直播原始碼,導航欄側滑手勢啟用/禁用棄用正確姿勢原始碼
- 直播系統app原始碼,漸變色按鈕帶陰影樣式APP原始碼
- 成品直播原始碼推薦,原生button按鈕css去掉預設樣式原始碼CSS
- 分析微信(iOS 版)定製導航欄按鈕的思路iOS
- 短視訊平臺原始碼,構建簡單的底部導航欄原始碼
- 聊天平臺原始碼,解決設定導航欄按鈕圖片變色問題原始碼
- 影片直播原始碼,標題居中,底部按鈕為三個時居中佈局原始碼
- CSS_導航欄+固定浮動的回到頂部按鈕CSS
- iOS開發:給UIWebview的導航欄新增返回、關閉按鈕iOSUIWebView
- CARDS主題 & 導航欄樣式修改
- 自定義導航欄返回按鈕導致返回手勢失效問題
- 直播系統平臺原始碼隱藏虛擬導航欄,禁止下拉通知欄,禁止上滑出虛擬導航欄原始碼
- 直播軟體原始碼,好看的點贊按鈕原始碼
- APP中,用mui做的底部導航欄,引用外部圖示APPUI
- Android 安卓手機及平板虛擬鍵盤遮住底部導航欄問題Android安卓
- 定製化你的ReactNative底部導航欄React
- 線上直播原始碼,自定義導航欄並固定居中對齊原始碼
- 成品直播原始碼,頂部導航欄部分支援左右滑動原始碼
- Flutter仿閒魚底部導航欄實現Flutter
- [譯]在底部導航欄裡使用 ProviderIDE
- 直播app系統原始碼,Flutter中導航欄和狀態列設定成透明APP原始碼Flutter
- Flutter學習筆記--仿閒魚底部導航欄帶有中間凸起圖示Flutter筆記
- weui+swiper 滑動底部導航欄切換UI
- Android 底部導航欄 (底部 Tab) 最佳實踐|掘金技術徵文Android
- Qt更改按鈕樣式 (以QSpinBox使用左右按鈕樣式為例)QT