Flutter中抽屜組件Drawer使用詳解
本文實(shí)例為大家分享了Flutter中抽屜組件Drawer實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下
1、概述
Scalfold 是 Flutter MaterialApp 常用的布局 Widget,接受一個(gè) drawer屬性,支持配置 Drawer,可以實(shí)現(xiàn)從側(cè)邊欄拉出導(dǎo)航面板,好處是把一些功能菜單折疊起來(lái),通常Drawer是和Listview組件或者 Column組合使用進(jìn)行縱向布局。Listview組件是豎排排列的,上下可滑動(dòng)。
【注意】如果沒(méi)有設(shè)置 AppBar 的 leading 屬性,則當(dāng)使用 Drawer 的時(shí)候會(huì)自動(dòng)顯示一個(gè) IconButton 來(lái)告訴用戶有側(cè)邊欄(在 Android 上通常是顯示為三個(gè)橫的圖標(biāo))。
2、Drawer組件常見(jiàn)屬性
child:Widget類(lèi)型,可以放置任意可顯示對(duì)象
elevation:double類(lèi)型,組件的Z坐標(biāo)的順序
import 'package:demo_app/pages/drawer/drawer.dart'; import 'package:flutter/material.dart'; class Home extends StatelessWidget { ? @override ? Widget build(BuildContext context) { ? ? return Scaffold( ? ? ? appBar: AppBar(),? ? ? ? body: Container(),? ? ? ? drawer: DrawLayout() ? ? ); ? } }
import 'package:flutter/material.dart'; class DrawLayout extends StatelessWidget { ? @override ? Widget build(BuildContext context) { ? ? return Drawer( ? ? ? child: Text('drawer') ? ? ); ? } }
3、Drawer可以添加頭部效果
- DrawerHeader:展示頭部基本信息
- UserAccountsDrawerHeader:展示用戶頭像、用戶名、email等信息
4、DrawerHeader常用屬性
- child:Widget類(lèi)型,Header里面所顯示的內(nèi)容控件
- padding、margin
- decoration:Decoration類(lèi)型,header區(qū)域的decoration,通常用來(lái)設(shè)置背景顏色或者背景圖片。
import 'package:flutter/material.dart'; class DrawLayout extends StatelessWidget { ? @override ? Widget build(BuildContext context) { ? ? return Drawer( ? ? ? child: ListView( ? ? ? ? padding: EdgeInsets.all(0.0), ? ? ? ? children: <Widget>[ ? ? ? ? ? DrawerHeader( ? ? ? ? ? ? child: Center( ? ? ? ? ? ? ? child: Text('drawer') ? ? ? ? ? ? ), ? ? ? ? ? ? decoration: BoxDecoration( ? ? ? ? ? ? ? color: Colors.blue ? ? ? ? ? ? ), ? ? ? ? ? ) ? ? ? ? ] ? ? ? ) ? ? ); ? } }
5、UserAccountsDrawerHeader常用屬性
- currentAccountPicture:Widget類(lèi)型,用來(lái)設(shè)置當(dāng)前用戶的頭像
- accountName:Widget類(lèi)型,當(dāng)前用戶的名字
- accountEmail:Widget類(lèi)型,當(dāng)前用戶的 Email
- onDetailsPressed: VoidCallback類(lèi)型,當(dāng) accountName 或者 accountEmail 被點(diǎn)擊的時(shí)候所觸發(fā)的回調(diào)函數(shù),可以用來(lái)顯示其他額外的信息
- otherAccountsPictures:List類(lèi)型,用來(lái)設(shè)置當(dāng)前用戶的其他賬號(hào)的頭像
- decoration:Decoration類(lèi)型,header區(qū)域的decoration,通常用來(lái)設(shè)置背景顏色或者背景圖片。
- margin
import 'package:flutter/material.dart'; class DrawLayout extends StatelessWidget { ? @override ? Widget build(BuildContext context) { ? ? return Drawer( ? ? ? child: ListView( ? ? ? ? padding: EdgeInsets.all(0.0), ? ? ? ? children: <Widget>[ ? ? ? ? ? UserAccountsDrawerHeader( ? ? ? ? ? ? accountName: Text('username'), ? ? ? ? ? ? accountEmail: Text('username@163.com'), ? ? ? ? ? ? currentAccountPicture: CircleAvatar( ? ? ? ? ? ? ? child: Icon(Icons.home), ? ? ? ? ? ? ), ? ? ? ? ? ? onDetailsPressed: (){}, ? ? ? ? ? ? otherAccountsPictures: <Widget>[ ? ? ? ? ? ? ? CircleAvatar( ? ? ? ? ? ? ? ? child: Icon(Icons.settings) ? ? ? ? ? ? ? ), ? ? ? ? ? ? ], ? ? ? ? ? ? decoration: BoxDecoration( ? ? ? ? ? ? ? color: Colors.green ? ? ? ? ? ? ), ? ? ? ? ? ), ? ? ? ? ? ListTile( ? ? ? ? ? ? title: Text('設(shè)置'), ? ? ? ? ? ? leading: Icon(Icons.settings), ? ? ? ? ? ? trailing: Icon(Icons.arrow_forward_ios) ? ? ? ? ? ) ? ? ? ? ] ? ? ? ) ? ? ); ? } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
探究Android中ListView復(fù)用導(dǎo)致布局錯(cuò)亂的解決方案
這篇文章主要介紹了探究Android中ListView復(fù)用導(dǎo)致布局錯(cuò)亂的解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10在android中實(shí)現(xiàn)類(lèi)似uc和墨跡天氣的左右拖動(dòng)效果
本文主要介紹下怎樣在android實(shí)現(xiàn)uc和墨跡天氣那樣的左右拖動(dòng)效果,具體代碼如下,感興趣的朋友可以參考下哈2013-06-06Android創(chuàng)建服務(wù)之started service詳細(xì)介紹
這篇文章主要介紹了Android創(chuàng)建服務(wù)之started service,需要的朋友可以參考下2014-02-02android底部彈出iOS7風(fēng)格對(duì)話選項(xiàng)框(QQ對(duì)話框)--第三方開(kāi)源之IOS_Dialog_Library
這篇文章主要介紹了android底部彈出iOS7風(fēng)格對(duì)話選項(xiàng)框(QQ對(duì)話框)--第三方開(kāi)源--IOS_Dialog_Library的相關(guān)資料,需要的朋友可以參考下2015-11-11Android中BroadcastReceiver實(shí)現(xiàn)短信關(guān)鍵字自動(dòng)回復(fù)功能
實(shí)現(xiàn)手機(jī)短信監(jiān)聽(tīng)的方式有兩種:一是通過(guò)ContentObserver觀察者實(shí)現(xiàn)監(jiān)聽(tīng),另一種就是通過(guò)廣播即BroadcastReceiver實(shí)現(xiàn)短信監(jiān)聽(tīng),文章中通過(guò)使用BroadcastReceiver實(shí)現(xiàn)有新短信的及時(shí)監(jiān)聽(tīng)及包含設(shè)定的關(guān)鍵字時(shí)自動(dòng)回復(fù)2018-06-06Android基于ibeacon實(shí)現(xiàn)藍(lán)牙考勤功能
這篇文章主要為大家詳細(xì)介紹了Android基于ibeacon實(shí)現(xiàn)藍(lán)牙考勤功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10Android Loader的使用以及手機(jī)通訊錄的獲取方法
下面小編就為大家分享一篇Android Loader的使用以及手機(jī)通訊錄的獲取方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01android 6.0 寫(xiě)入SD卡的權(quán)限申請(qǐng)實(shí)例講解
今天小編就為大家分享一篇android 6.0 寫(xiě)入SD卡的權(quán)限申請(qǐng)實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08