直播app開發,封裝式標題欄
直播app開發,封裝式標題欄實現的相關程式碼
封裝文字元件 text_common.dart
import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class TextCommon extends StatelessWidget { final String text; final Color color; final double size; final bool bold; final bool softWrap; final bool medium; final bool heavy; final bool center; final int maxLines; final TextDecoration decoration; final double height; final TextStyle style; TextCommon(this.text, {this.color, this.size, this.bold: false, this.heavy: false, this.softWrap: false, this.center: false, this.medium: false, this.maxLines, this.decoration, this.height, this.style}); @override Widget build(BuildContext context) { return Text( text, textAlign: center ? TextAlign.center : TextAlign.start, maxLines: maxLines, overflow: TextOverflow.ellipsis, softWrap: softWrap, style: style ?? TextStyle( decoration: decoration, color: color ?? Color(0xFF666666), fontSize: size ?? 14, fontWeight: heavy ? FontWeight.w900 : (bold ? FontWeight.bold : (medium ? FontWeight.w500 : FontWeight.normal)), height: height ?? 1.4, ), ); }
封裝導航欄元件 app_bar_left_title.dart
import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'text_common.dart'; @immutable class AppBarLeftTitle extends StatelessWidget implements PreferredSizeWidget { final String title; final bool hasBack; final bool isWhiteBack; final String right; final VoidCallback onTap; final Widget centerWidget; final Widget leading; final Color rightColor; final Widget rightWidget; final Color backgroundColor; final bool showDividerHorizontal; final Widget bottomWidget; final bool isCenterTitle; final double titleSize; final double height; AppBarLeftTitle( {Key key, this.backgroundColor, @required this.title, this.isWhiteBack = true, this.hasBack, this.right, this.onTap, this.centerWidget, this.rightColor, this.rightWidget, this.showDividerHorizontal = true, this.leading, this.bottomWidget, this.isCenterTitle: true, this.titleSize: 18.0, this.height: 44.0}) : super(key: key); @override Widget build(BuildContext context) { bool canPop = ModalRoute.of(context)?.canPop ?? false; return AppBar( elevation: 0, titleSpacing: 0, centerTitle: isCenterTitle, backgroundColor: Colors.black, actions: rightWidget != null ? [ Padding( padding: EdgeInsets.only(right: 8), child: Center( child: rightWidget, ), ) ] : [ GestureDetector( behavior: HitTestBehavior.opaque, onTap: onTap, child: Align( child: Padding( padding: EdgeInsets.only(right: 16), child: TextCommon(right ?? '', color: rightColor ?? Colors.black), ), ), ) ], leading: canPop ? leading ?? IconButton( icon: Icon( Icons.arrow_back_ios, color: isWhiteBack ? Colors.white : Color(0xFF333333), size: 22, ), onPressed: () => Navigator.pop(context)) : Container(), title: TextCommon( title ?? '', size: titleSize, color: isWhiteBack ? Colors.white : Colors.black, ), bottom: this.bottomWidget, ); } @override Size get preferredSize => Size.fromHeight(height); }
元件使用
Scaffold( appBar: AppBarLeftTitle( title: '標題', ), ...... )
新增右元件例項
AppBarLeftTitle( title: '標題', rightWidget: ButtonCommon( margin: EdgeInsets.symmetric(horizontal: 10.0), text: '返回上一級', fontSize: 12.0, width: 80, height: 30, color: ColorHelper.linkBlue, circular: 5.0, onTap: () { } ), ), )
以上就是直播app開發,封裝式標題欄實現的相關程式碼, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2851495/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 元件化封裝之標題欄Toolbar元件化封裝
- 直播平臺軟體開發,實現自定義標題欄
- 基於鴻蒙ArkUI封裝標題欄TitleBar導航元件鴻蒙UI封裝元件
- 直播軟體app開發,flutter 驗證碼輸入框的簡單封裝APPFlutter封裝
- 直播app開發,滑動式的頂部導航欄(左右橫向滑動)APP
- AppCompatActivity隱藏標題欄APP
- 直播電商平臺開發,動態去除系統自帶標題欄、狀態列
- iOS開發之微信聊天工具欄的封裝iOS封裝
- 直播APP開發公司是如何開發一套完整直播APP?APP
- 直播app原始碼,標題欄隨頁面滑動之title移動定位效果APP原始碼
- 直播app開發公司中直播程式的開發流程APP
- 直播app開發,css讓圖片在a標籤裡垂直居中APPCSS
- Delphi元件開發-在窗體標題欄新增按鈕元件
- Android開發:定製Activity的標題欄(Titlebar)Android
- Android 二次最佳化個人封裝新聞可滑動標題欄Android封裝
- 教育直播系統開發APP開發(需求)APP
- 視訊直播系統原始碼,頂部標題欄的隱藏和標題修改原始碼
- 【從 0 開始開發一款直播 APP】3.2 高層封裝之 Adapter — RecyclerView 實現單佈局展示...APP封裝APTView
- 購物直播系統開發,APP開發(功能)APP
- 直播app開發搭建,註冊頁面樣式,全部程式碼APP
- 封裝JDBC—非框架開發必備的封裝類封裝JDBC框架
- 直播電商平臺開發,日期與時間戳轉換封裝工具類時間戳封裝
- 直播app原始碼開源,Android 滾動的公告欄APP原始碼Android
- 教育直播APP解決方案開發APP
- 短影片直播APP成品開發直播系統仿抖音APP無加密APP加密
- Qt隱藏系統標題欄,使用自定義標題欄QT
- WPF 模擬UWP原生視窗樣式——亞克力|雲母材質、自定義標題欄樣式、原生DWM動畫 (附我封裝好的類)動畫封裝
- 直播軟體app開發,產品頁面顯示折扣倒數計時一欄APP
- 直播類app開發解決方案、直播app功能有哪些?-北京銳智互動軟體開發APP
- uni-app動態修改頂部導航欄標題APP
- Android沉浸式設計(狀態列和導航欄)——封裝Android封裝
- 怎樣做好教學直播app開發APP
- 教育直播APP原始碼開發系統APP原始碼
- 直播賣貨APP開發過程中的最佳化問題APP
- 直播軟體開發,自定義搜尋欄的圖示樣式和搜尋框
- jq封裝函式封裝函式
- php函式封裝PHP函式封裝
- 聊天平臺原始碼,標題過長自動應用摺疊式標題欄原始碼