这篇文章主要为大家详细介绍了Flutter中抽屉组件Drawer使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Flutter中抽屉组件Drawer实现代码,供大家参考,具体内容如下
1、概述
Scalfold 是 Flutter MaterialApp 常用的布局 Widget,接受一个 drawer属性,支持配置 Drawer,可以实现从侧边栏拉出导航面板,好处是把一些功能菜单折叠起来,通常Drawer是和Listview组件或者 Column组合使用进行纵向布局。Listview组件是竖排排列的,上下可滑动。
【注意】如果没有设置 AppBar 的 leading 属性,则当使用 Drawer 的时候会自动显示一个 IconButton 来告诉用户有侧边栏(在 Android 上通常是显示为三个横的图标)。
2、Drawer组件常见属性
child:Widget类型,可以放置任意可显示对象
elevation:double类型,组件的Z坐标的顺序
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类型,Header里面所显示的内容控件
- padding、margin
- decoration:Decoration类型,header区域的decoration,通常用来设置背景颜色或者背景图片。
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类型,用来设置当前用户的头像
- accountName:Widget类型,当前用户的名字
- accountEmail:Widget类型,当前用户的 Email
- onDetailsPressed: VoidCallback类型,当 accountName 或者 accountEmail 被点击的时候所触发的回调函数,可以用来显示其他额外的信息
- otherAccountsPictures:List类型,用来设置当前用户的其他账号的头像
- decoration:Decoration类型,header区域的decoration,通常用来设置背景颜色或者背景图片。
- 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('设置'),
leading: Icon(Icons.settings),
trailing: Icon(Icons.arrow_forward_ios)
)
]
)
);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:Flutter中抽屉组件Drawer使用详解


基础教程推荐
猜你喜欢
- iOS开发使用XML解析网络数据 2022-11-12
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18
- Android Compose自定义TextField实现自定义的输入框 2023-05-13
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07
- Flutter进阶之实现动画效果(三) 2022-10-28
- iOS开发 全机型适配解决方法 2023-01-14
- Android开发Compose集成高德地图实例 2023-06-15
- IOS获取系统相册中照片的示例代码 2023-01-03
- Android实现短信验证码输入框 2023-04-29