当前位置: 首页 > article >正文

flutter 快速实现侧边栏

首先我们写一个侧边栏工具类,示例如下:

import 'package:flutter/material.dart';

class Sidebar extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Drawer(
      child: ListView(
        padding: EdgeInsets.zero,
        children: <Widget>[
          UserAccountsDrawerHeader(
            accountName: Text("用户名"),
            accountEmail: Text("用户邮箱"),
            currentAccountPicture: CircleAvatar(
              backgroundColor: Colors.white,
              child: Text(
                "U",
                style: TextStyle(fontSize: 40.0, color: Colors.blue),
              ),
            ),
          ),
          ListTile(
            leading: Icon(Icons.home),
            title: Text('首页'),
            onTap: () {
              Navigator.pop(context); // 关闭侧边栏
              // 添加导航逻辑
            },
          ),
          ListTile(
            leading: Icon(Icons.settings),
            title: Text('设置'),
            onTap: () {
              Navigator.pop(context); // 关闭侧边栏
              // 添加导航逻辑
            },
          ),
          ListTile(
            leading: Icon(Icons.info),
            title: Text('关于'),
            onTap: () {
              Navigator.pop(context); // 关闭侧边栏
              // 添加导航逻辑
            },
          ),
        ],
      ),
    );
  }
}

然后我们在需要的地方引用这个侧边栏页面,示例如下

Scaffold(
            appBar: AppBar(
              title: Text('侧边栏示例'), // 自定义标题
            ),
            drawer: Sidebar(), // 使用自定义的侧边栏
            body: Center(
              child: Text('主页内容'),
            ),
          ),

效果如下所示

如果想将一个类改写成侧边栏工具类,只需要用Drawer将整个页面进行包裹一下,然后在使用页面的Scaffold里面加上drawer这个标签引用这个类,然后将点击跳转这个类的方法改写成Scaffold.of(context).openDrawer();即可完成快速构建侧边栏。


http://www.kler.cn/a/445486.html

相关文章:

  • python爬虫爬抖音小店商品数据+数据可视化
  • stm32四联七段数码管,LED8*8点阵
  • 折腾日记:如何让吃灰笔记本发挥余热——搭建一个相册服务
  • SpringBoot集成shardingsphere实现分表
  • VSCode 插件开发实战(十五):如何支持多语言
  • 【每日学点鸿蒙知识】gbk2313传到native、NAPI打印日志问题、table表格控件、Web 触发新窗口卡住、修饰列表
  • 软件架构设计方法之The Clean Architecture 整洁架构
  • android opencv导入进行编译
  • 使LED每秒闪烁一次
  • 海外招聘丨埃因霍温科技大学—安全人工智能自动机器学习博士后
  • 系统设计:微服务架构的可扩展性系统 详解
  • 【mysql】1205 -Lock wait timeout exceeded; try restarting transaction
  • Hive其三,数据库操作,小技巧设置,加载数据等操作
  • 白嫖内网穿透之神卓互联Linux安装教程(树莓派)
  • 第一次面试到第一份offer的经历分享
  • 勤研低代码平台:重塑软件开发协作新生态
  • Mamba安装环境和使用,anaconda环境打包
  • SpringBoot 编程式事务使用
  • 2024最新CF罗技鼠标宏
  • 门店全域推广,线下商家营销布局的增量新高地
  • vue.js框架概述
  • 29. 多线程编程
  • 对象的状态变化处理与工厂模式实现
  • UI Automator Viewer操作
  • ASCII码简介以及在php中的使用
  • JavaSE——绘图入门