首页 > 其他分享 >22、Scaffold属性 抽屉菜单Drawer

22、Scaffold属性 抽屉菜单Drawer

时间:2023-11-30 19:14:03浏览次数:28  
标签:const 22 title Text Scaffold Drawer child com

在Scaffold组件里面传入drawer参数可以定义左侧边栏,传入endDrawer可以定义右侧边栏。侧边栏默 认是隐藏的,我们可以通过手指滑动显示侧边栏,也可以通过点击按钮显示侧边栏。  

class MyFlutterApp extends StatelessWidget {
  const MyFlutterApp({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Flutter App")),
      drawer: const Drawer(
        child: Text("左侧侧边栏"),
      ),
      endDrawer: const Drawer(
         child: Text("左侧侧边栏"),
      ),
    );
  }
}

 

 

Flutter DrawerHeader

常见属性:

 

class MyFlutterApp extends StatelessWidget {
  const MyFlutterApp({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Flutter App")),
      drawer: const Drawer(
          child: Column(
        children: [
          Row(
            children: [
              Expanded(
                flex: 1,
                child: DrawerHeader(
                  decoration: BoxDecoration(  //头部
                      color: Colors.red, //背景颜色
                      image: DecorationImage(
                          image: NetworkImage("https://www.itying.com/images/flutter/3.png"), 
                           fit: BoxFit.cover) //背景图片(不是圆形)
                      ),
                  child: Text("头部")
                ),
              )
            ],
          ),

          //  SizedBox(height: 60,), //顶部间距
          // DrawerHeader(
          //   decoration: BoxDecoration(
          //     color: Colors.red //背景颜色
          //   ),
          //   child: Text("头部"),
          // ),
          ListTile(
            leading: CircleAvatar(
              child: Icon(Icons.people),
            ),
            title: Text("个人中心"),
          ),
          ListTile(
            leading: CircleAvatar(
              child: Icon(Icons.toll),
            ),
            title: Text("设置"),
          )
        ],
      )),
      endDrawer: const Drawer(
        child: Text("右侧侧边栏"),
      ),
    );
  }
}

自定义头像
//头像需要自己去定义
class MyFlutterApp extends StatelessWidget {
  const MyFlutterApp({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Flutter App")),
      drawer: const Drawer(
          child: Column(
        children: [
          Row(
            children: [
              Expanded(
                flex: 1,
                child: DrawerHeader(
                  //头部
                  decoration: BoxDecoration(
                      color: Colors.red, //背景颜色
                      image: DecorationImage(
                          image: NetworkImage(
                              "https://www.itying.com/images/flutter/3.png"),
                          fit: BoxFit.cover) //背景图片(不是圆形)
                      ),
                  child: Column(
                    children: [
                      ListTile(
                        leading: CircleAvatar(
                          backgroundImage: NetworkImage(
                            "https://www.itying.com/images/flutter/3.png",
                          ), //图片(圆形)
                          // child: Image.network("https://www.itying.com/images/flutter/3.png"),图片(不是圆形)
                        ),
                        title: Text("个人中心"),
                      ),
                      ListTile(
                        title: Text("邮箱: [email protected]"),
                      )
                    ],
                  ),
                ),
              )
            ],
          ),

          //  SizedBox(height: 60,), //顶部间距
          // DrawerHeader(
          //   decoration: BoxDecoration(
          //     color: Colors.red //背景颜色
          //   ),
          //   child: Text("头部"),
          // ),
          ListTile(
            leading: CircleAvatar(
              child: Icon(Icons.people),
            ),
            title: Text("个人中心"),
          ),
          ListTile(
            leading: CircleAvatar(
              child: Icon(Icons.toll),
            ),
            title: Text("设置"),
          )
        ],
      )),
      endDrawer: const Drawer(
        child: Text("右侧侧边栏"),
      ),
    );
  }
}

Flutter UserAccountsDrawerHeader

常见属性:

 

class MyFlutterApp extends StatelessWidget {
  const MyFlutterApp({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      
      appBar: AppBar(title: Text("Flutter App")),
      drawer: Drawer(
        width: 500, // 设置自定义宽度
          child: Column(
        children: [
          Row(
            children: [
              Expanded(
                flex: 1,
                child: UserAccountsDrawerHeader(
                  decoration: const BoxDecoration(
                      image: DecorationImage(
                    image: NetworkImage(
                        "https://www.itying.com/images/flutter/3.png"),
                    fit: BoxFit.cover,
                  ) //背景图片
                      ),
                  currentAccountPicture: const CircleAvatar(
                    backgroundImage: NetworkImage(
                        "https://www.itying.com/images/flutter/3.png"), //用户头像
                  ),
                  otherAccountsPictures: [  //他账户头像(图片)
                    //
                    Image.network(
                        "https://www.itying.com/images/flutter/3.png"),
                    Image.network(
                        "https://www.itying.com/images/flutter/3.png"),                        
                    Image.network(
                        "https://www.itying.com/images/flutter/3.png"),
                  ],
                  accountName: Text("张三"),
                  accountEmail: Text("[email protected]"),
                ),
              )
            ],
          ),
          const ListTile(
            leading: CircleAvatar(
              child: Icon(Icons.people),
            ),
            title: Text("个人中心"),
          ),
          const ListTile(
            leading: CircleAvatar(
              child: Icon(Icons.toll),
            ),
            title: Text("设置"),
          )
        ],
      )),
      endDrawer: const Drawer(
        child: Text("右侧侧边栏"),
      ),
    );
  }
}

 

 

 

标签:const,22,title,Text,Scaffold,Drawer,child,com
From: https://www.cnblogs.com/xbinbin/p/17866157.html

相关文章

  • P2522 [HAOI2011] Problem b
    题意求\(\sum_{i=a}^{b}\sum_{j=c}^{d}[\gcd(i,j)=k]\)。Sol简单容斥一下。\[\begin{aligned}\sum_{i=a}^{b}\sum_{j=c}^{d}[\gcd(i,j)=k]&=\sum_{i=1}^{b}\sum_{j=1}^{d}[\gcd(i,j)=k]\\&-\sum_{i=1}^{b......
  • 【专题】2022年中国跨境电商行业研究报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32044近年来,我国的跨境电子商务发展迅速,在过去五年中,其贸易额增长率达到了16.2%,已经成为稳定对外贸易的一支重要力量。阅读原文,获取专题报告合集全文,解锁文末52份跨境电商行业相关报告。一方面,随着跨境电子商务的发展,跨境电子商务的监管政策得到了......
  • 代码随想训练营第四十五天(Python)| 70. 爬楼梯 (进阶)、322. 零钱兑换 、 279.完全平方数
    70.爬楼梯(进阶)1、使用01背包解法classSolution:defclimbStairs(self,n:int)->int:#dp数组代表爬上第i阶有dp[j]种方法dp=[0]*(n+1)dp[0]=1m=2#排列先背包后物品foriinrange(n+1):......
  • 重装vs2022 nuget添加包报错: Unexpected character encountered while parsing value:
    工具--》选项--》Nuget包管理器,点击清除所有Nuget存储 参考文献:关于VSNuGet包无法更新,设置包源映射无效的问题-CSDN博客         微软官方文献 ......
  • ubuntu server 22 LTS 安装MySQL8(二进制源码方式)
    原作来源:https://github.com/aminglinux/daily_shell/blob/main/29.sh根据我自己情况稍作修改mysql下载地址:https://downloads.mysql.com/archives/community/ 按照顺序执行逐行执行注意执行过程的提示,报错需处理:tar-xvfmysql-8.0.34-linux-glibc2.17-x86_64.tarsudo......
  • enote笔记法之附录2——5w1h2k关联词(ver0.22)
    enote笔记法之附录2——5w1h2k关联词(ver0.22)最上面的是截屏的完整版,分割线下面的是纯文字版本:  作者姓名(本人的真实姓名):胡佳吉 居住地:上海作者网名:EverSteins版权声明:enote笔记法之附录2——5w1h2k关联词(ver0.22)的发表日期为为2023年11月29日。以上的所有内容全部都是......
  • 【专题】2022汽车品牌影响力研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34404原文出处:拓端数据部落公众号近年来,汽车市场中的品牌销量排名发生了巨大的变化,形成了比亚迪和大众两大巨头。比亚迪在中国品牌中的销量增长迅速,特别是在新能源领域,引领着中国品牌的快速增长。豪华品牌方面,形成了一个由BBA和特斯拉组成的新一......
  • 11.29实验22
    实验22:状态模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解状态模式的动机,掌握该模式的结构;2、能够利用状态模式解决实际问题。[实验任务一]:银行账户用Java代码模拟实现课堂上的“银行账户”的实例,要求编写客户端测试代码模拟用户存款和取款,注意账户对象状态......
  • ICPC2022Xian L Tree 题解
    LinkICPC2022XianLTreeQuestion给出一个根为\(1\)的树,需要将树分成几个块每个块,一个块中的节点需要满足以下条件中的一个:对于所有的\(u,v\inS,\u\neqv\),满足\(u\insubtree(v)\)或\(v\insubtree(u)\)对于所有的\(u,v\inS,\u\neqv\),满足\(u\not......
  • 【转】如何给 Visual Studio 2022 安装 .NET 4.5 开发者工具包?
    本文转自:https://www.coderbusy.com/archives/2913.html在VS2022打开.net4.5的项目时,可能会遇到编译报错:ErrorMSB3644Thereferenceassembliesfor.NETFramework,Version=v4.5werenotfound.Toresolvethis,installtheDeveloperPack(SDK/TargetingPack)for......