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)告訴用戶(hù)有側(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:展示用戶(hù)頭像、用戶(hù)名、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)前用戶(hù)的頭像
- accountName:Widget類(lèi)型,當(dāng)前用戶(hù)的名字
- accountEmail:Widget類(lèi)型,當(dāng)前用戶(hù)的 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ù)的其他賬號(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)文章
APP添加CNZZ統(tǒng)計(jì)插件教程 Android版添加phonegap
這篇文章主要介紹了APP添加CNZZ統(tǒng)計(jì)插件教程,Android版添加phonegap,感興趣的小伙伴們可以參考一下2015-12-12
Android自定義View圓形和拖動(dòng)圓跟隨手指拖動(dòng)
這篇文章主要介紹了Android自定義View圓形和拖動(dòng)圓跟隨手指拖動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Kotlin類(lèi)與屬性及構(gòu)造函數(shù)的使用詳解
這篇文章主要介紹了Kotlin語(yǔ)言中類(lèi)與屬性及構(gòu)造函數(shù)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09
仿網(wǎng)易新聞客戶(hù)端頭條ViewPager嵌套實(shí)例
正確使用requestDisallowInterceptTouchEvent(boolean flag)方法,下面為大家介紹下外層ViewPager布局的實(shí)例,感興趣的朋友可以參考下哈2013-06-06
Android自定義控件RatingBar調(diào)整字體大小
這篇文章主要為大家詳細(xì)介紹了Android自定義控件RatingBar調(diào)整字體大小的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Android studio導(dǎo)出APP測(cè)試包和構(gòu)建正式簽名包
大家好,本篇文章主要講的是Android studio導(dǎo)出APP測(cè)試包和構(gòu)建正式簽名包,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下2021-12-12
Android Application級(jí)別自定義Toast
這篇文章主要為大家詳細(xì)介紹了Android Application級(jí)別自定義Toast,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
Android 消息機(jī)制問(wèn)題總結(jié)
本文主要介紹Android 消息機(jī)制,這里整理了消息機(jī)制的詳細(xì)資料,和經(jīng)常出現(xiàn)的問(wèn)題,希望能幫助大家對(duì)消息機(jī)制的理解2016-08-08
android實(shí)現(xiàn)藍(lán)牙文件發(fā)送的實(shí)例代碼,支持多種機(jī)型
這篇文章主要介紹了android實(shí)現(xiàn)藍(lán)牙文件發(fā)送的實(shí)例代碼,有需要的朋友可以參考一下2014-01-01

