日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[flutter专题]详解AppBar小部件

發布時間:2025/3/19 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [flutter专题]详解AppBar小部件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是堅果,公眾號“堅果前端”

AppBar

應用欄是各種應用程序中最常用的組件之一。它可用于容納搜索字段、以及在頁面之間導航的按鈕,或者只是頁面標題。由于它是一個如此常用的組件,因此 Flutter 為該功能提供了一個名為AppBar的專用小部件。

在本教程中,我們將通過一些實際示例向您展示如何在 Flutter 應用程序中自定義 AppBar。

以下是我們將介紹的內容:

  • Flutter 中的 AppBar 是什么?
  • 應用欄布局
  • 自定義 AppBar

Flutter 中的 AppBar 是什么?

Flutter AppBar 是根據Material Design指南構建的應用程序組件。它通常位于屏幕頂部,并且能夠在其布局中包含其他小部件。AppBar 通常顯示品牌信息,例如徽標和標題,并且通常包含按鈕或其他用戶交互點。

以下是 Flutter 中默認的 AppBar 的樣子:

// Mostly, AppBar is used inside a Scaffold widget. Scaffold(appBar: AppBar(), ),

應用欄布局

在Flutter中,AppBar的布局主要包括三個組成部分:leading,title,和actions。leading放置在AppBar的最左邊位置;title并actions出現在它的右邊。

leading

leading 接受一個小部件,可以分配任何東西——文本、圖標,甚至一行中的多個小部件。

AppBar(leading: Icon(Icons.account_circle_rounded), ),

您可以控制leading可以占用多少寬度:

AppBar(leading: Icon(Icons.account_circle_rounded),leadingWidth: 100, // default is 56 ),

如果leading未提供,AppBar 會自動為我們暗示。示例包括返回上一頁的導航箭頭或打開抽屜的菜單圖標。

當上一條路線可用時,導航箭頭會自動出現。

class HomePage extends StatelessWidget {@overrideWidget build(BuildContext context) {return Scaffold(body: Center(child: TextButton(child: Text('Push'),onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (context) {return SecondPage();},)),),),);} }class SecondPage extends StatelessWidget {@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(),);} }

當我們將 添加Drawer到Scaffold時 ,會分配一個菜單圖標leading來打開抽屜。

class HomePage extends StatelessWidget {@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(),drawer: Drawer(),);} }

如果需要,可以通過設置automaticallyImplyLeadingfalse來防止這種行為。

AppBar(automaticallyImplyLeading: false, // simple as that! ),

title

顧名思義,它主要用于顯示標題,例如應用程序標題或頁眉。

AppBar(title: Text('Profile Page'), ),

但您不僅限于此,因為也title需要一個小部件。您可以使用它來顯示圖標、圖像、形狀或使用布局小部件(例如row和 )的任意組合column。

下面是一個例子:

AppBar(title: Container(width: 40,child: Image.network(url),), ),

默認情況title下,根據 Material 指南與 AppBar 的左側對齊。您可以更改此設置以使其居中對齊:

AppBar( title: Container( width: 40, child: Image.network(url), ), centerTitle: true, // like this!),

actions

actions是與 AppBar 右側對齊的小部件列表。我們通常在用作按鈕的應用程序中看到它們來觸發下拉菜單、個人資料頭像等。

AppBar( actions: [ Icon(Icons.more_vert), ],),

讓我們再向列表中添加一個小部件:

AppBar( actions: [ Container( width: 30, child: Image.asset( 'assets/images/profile_pic.png', ), ), Icon(Icons.more_vert), ],),

在 Flutter 中自定義 AppBar

現在我們熟悉了 AppBar 的布局,讓我們通過使用主題選項將自定義提升到一個新的水平。AppBar 包含各種屬性,包括顏色、大小、圖標主題、文本主題等等。

背景顏色

以下代碼將 AppBar 的背景顏色更改為深橙色。500添加以訪問顏色的特定陰影,900即最暗和最亮50。

AppBar( backgroundColor: Colors.deepOrange[500],),

圖標主題

下面的代碼將圖標的顏色更改為綠色,將大小更改為36:

AppBar( actionsIconTheme: IconThemeData(color: Colors.green, size: 36),),

文字主題

假設您想將文本顏色更改為帶有較淺陰影的琥珀色,200并將字體大小設置為24:

AppBar( textTheme: TextTheme( headline6: TextStyle( // headline6 is used for setting title's theme color: Colors.amber[200], fontSize: 24, ), ),),

Elevation

如果你想給 AppBar 一點高度,你可以使用elevation. 以下代碼將 AppBar 的高度增加到15.

AppBar( elevation: 15,),

請注意 AppBar 被抬起并且陰影跨越了更大的區域。

陰影顏色

你甚至可以弄亂陰影的顏色。下面的代碼將 AppBar 的陰影顏色更改為orangeAccent。

AppBar( shadowColor: Colors.orangeAccent,),

很酷,對吧?

工具欄高度和不透明度

最后,我們有工具欄屬性。工具欄包含文字,圖標,按鈕,和其他任何公司的前景,除了小部件,如Container和Image。

要更改 AppBar 工具欄項目的高度和不透明度:

AppBar( toolbarHeight: 100, // default is 56 toolbarOpacity: 0.5,),

結論

如果你已經做到了這一步,你現在應該明白:

  • AppBar 是什么以及它如何在 Flutter 中使用
  • AppBar 的布局 ( leading, title, 和actions)
  • 如何自定義 AppBar 的布局和添加小部件
  • 如何為 AppBar 的圖標、文本、背景、高度、陰影顏色和工具欄設置主題

所以我們有了!關于 Flutter 的 AppBar 必須提供的所有內容的完整演練。我希望這篇文章能幫助你在未來所有的 Flutter 應用程序中創建漂亮的 AppBars。

最后附上AppBar的一些屬性

AppBar({ Key? key, this.leading,//左側顯示的圖標 通常首頁顯示的為應用logo 在其他頁面為返回按鈕 this.automaticallyImplyLeading = true,//配合leading使用 this.title,//標題文本 this.actions,//右側item this.flexibleSpace,//顯示在 AppBar 下方的控件,高度和 AppBar 高度一樣, // 可以實現一些特殊的效果,該屬性通常在 SliverAppBar 中使用 this.bottom,//一個 AppBarBottomWidget 對象,通常是 TabBar。用來在 Toolbar 標題下面顯示一個 Tab 導航欄 this.elevation,//控件的 z 坐標順序,默認值 4,對于可滾動的 SliverAppBar,當 SliverAppBar 和內容同級的時候,該值為 0, // 當內容滾動 SliverAppBar 變為 Toolbar 的時候,修改 elevation 的值。 this.shape, this.backgroundColor,//AppBar背景色 this.brightness,//AppBar亮度 有黑白兩種主題 this.iconTheme,//AppBar上圖標的樣式 this.actionsIconTheme,//AppBar上actions圖標的樣式 this.textTheme,//AppBar上文本樣式 this.primary = true, this.centerTitle,//標題是否居中 this.titleSpacing = NavigationToolbar.kMiddleSpacing,//標題與其他控件的空隙 this.toolbarOpacity = 1.0,//AppBar tool區域透明度 this.bottomOpacity = 1.0,//bottom區域透明度 this.toolbarHeight, this.backwardsCompatibility, this.toolbarTextStyle, this.titleTextStyle, this.systemOverlayStyle, })

希望大家能夠喜歡本文,謝謝

總結

以上是生活随笔為你收集整理的[flutter专题]详解AppBar小部件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 少妇色| 日韩欧美一级大片 | 伊人资源网 | 欧美做受69 | 成人av电影在线播放 | 雪花飘电影在线观看免费高清 | 国产av剧情一区二区三区 | 午夜在线看片 | 国产欧美日韩综合精品 | 亚洲精品少妇一区二区 | 爆乳2把你榨干哦ova在线观看 | 日本视频免费看 | 久久久久久久黄色片 | 久久精品无码人妻 | 色图社区| 浮力影院国产第一页 | 亚洲人成一区 | 国产精品1000| 欧美一区二区在线观看 | 高潮喷水一区二区三区 | 欧美无遮挡 | 日本成人在线视频网站 | 午夜裸体性播放 | 少妇真人直播免费视频 | 国产在线观看免费视频软件 | 仙踪林av | 无码gogo大胆啪啪艺术 | 色资源av | 在线中文字幕视频 | 波多野结衣在线看 | 色一区二区三区 | 我不卡av | 亚洲欧美激情另类校园 | 亚洲午夜毛片 | 久久国产剧情 | 91精彩视频 | 超清纯大学生白嫩啪啪 | 欧美一级黄色片在线观看 | 能在线观看的av网站 | 黑名单上的人全集免费观看 | 粉嫩视频在线观看 | 日韩一区二区三区免费在线观看 | 久久久久亚洲av成人网人人网站 | 亚洲欧美高清视频 | 亚洲av成人片色在线观看高潮 | 日日摸天天添天天添破 | 高潮网 | 日韩欧美在线中文字幕 | 欧美高清一区二区三区四区 | 两根大肉大捧一进一出好爽视频 | 人人澡人人爽 | 在线观看国产一区二区三区 | 9i看片成人免费高清 | 久久亚洲私人国产精品va | 视频二区中文字幕 | 黄色网在线播放 | 另类专区欧美 | 大胸美女网站 | 无码人妻aⅴ一区二区三区69岛 | www.五月.com| 有机z中国电影免费观看 | 岛国一区二区三区 | 精东影业一区二区三区 | 一级做a爰片久久毛片潮喷 天天透天天干 | 亚洲久久影院 | 精品一区二区三区在线免费观看 | 99国产精 | 在线观看视频www | 在线91观看| 欧美久操| 日韩人妻一区二区三区蜜桃 | 日韩特黄毛片 | 国产香蕉视频在线播放 | 香蕉视频免费网站 | 9999热视频 | 亚洲成av人片 | 国产精品毛片av | 超碰人人人人 | 视频在线| 五月天婷婷丁香花 | 中文字幕人妻一区二区在线视频 | 一级片啪啪 | av永久免费| 久久最新 | 9999精品视频 | 亚洲最大成人av | a国产精品| 日韩精品免费 | 69色视频 | 久久人人妻人人人人妻性色av | 国产精品成人一区二区 | 福利社91 | 亚洲顶级毛片 | 日韩美女免费视频 | 男人干女人视频 | 99久视频| 女同av网站 | np视频| 亚洲字幕在线观看 |