返回顶部
首页 > 资讯 > 移动开发 >FlutterDrawer抽屉菜单示例详解
  • 243
分享到

FlutterDrawer抽屉菜单示例详解

2024-04-02 19:04:59 243人浏览 薄情痞子
摘要

本文实例为大家分享了Flutter Drawer抽屉菜单示例代码,供大家参考,具体内容如下 一.Flutter Drawer组件简介 1.源码查看 const Drawer({  

本文实例为大家分享了Flutter Drawer抽屉菜单示例代码,供大家参考,具体内容如下

一.Flutter Drawer组件简介

1.源码查看

const Drawer({
    Key? key,
    this.elevation = 16.0, //阴影效果大小
    this.child, //内容元素
    this.semanticLabel, //关闭/打开抽屉时的通知信息
  }) 

二.抽屉菜单示例

1.菜单项,使用 ListTile 实现

Expanded(
              child: ListView(
                children: <Widget>[
                  ListTile(
                    leading: const Icon(Icons.person),
                    title: const Text('Personal'),
                  ),
                  ListTile(
                    leading: const Icon(Icons.message),
                    title: const Text('infORMation'),
                  ),
                  ListTile(
                    leading: const Icon(Icons.settings),
                    title: const Text('about'),
                  ),
                ],
              ),
),

2.底部导航栏,使用BottomNavigationBar实现

bottomNavigationBar: BottomNavigationBar(
        currentIndex: currentIndex,
        type: BottomNavigationBarType.fixed,
        unselectedItemColor: Colors.grey,
        selectedItemColor: Colors.blue,
        
        items: [
          BottomNavigationBarItem(
              icon: Icon(Icons.home),
              label: "首页",
              //backgroundColor:Colors.blue
          ),
 
          BottomNavigationBarItem(
              icon: Icon(Icons.person),
              label: "通讯录",
              //backgroundColor:Colors.blue
          ),
 
          BottomNavigationBarItem(
              icon: Icon(Icons.find_in_page),
              label: "发现",
              //backgroundColor:Colors.blue
          ),
 
          BottomNavigationBarItem(
              icon: Icon(Icons.flip_outlined),
              label: "我的",
              //backgroundColor:Colors.blue
          ),
        ],
 
        onTap: (index){
          setState(() {
            print("the index is :$index");
            currentIndex=index;
          });
        },
      ),

参考:flutter底部导航栏

3.悬浮按钮,使用FloatingActionButton实现

floatingActionButton: FloatingActionButton( //悬浮按钮
          child: Icon(Icons.add),
          onPressed:_onAddNum
      ),

三.Demo及实际效果

1.mydrawer.dart

import 'package:flutter/material.dart';
 
class MyDrawer extends StatelessWidget {
  const MyDrawer({
    Key? key,
  }) : super(key: key);
 
  @override
  Widget build(BuildContext context) {
    return Drawer(
      elevation: 30,
      child: MediaQuery.removePadding(
        context: context,
        //移除抽屉菜单顶部默认的空白
        removeTop: true,
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Padding(
              padding: const EdgeInsets.only(top: 30.0),
              child: Row(
                children: <Widget>[
                  Padding(
                    padding: const EdgeInsets.symmetric(horizontal: 15.0),
                    child: ClipOval(
                      child: Image.asset(
                        "images/cc.png",
                        width: 60,
                      ),
                    ),
                  ),
                  Text(
                    "jon",
                    style: TextStyle(fontWeight: FontWeight.bold),
                  )
                ],
              ),
            ),
            Expanded(
              child: ListView(
                children: <Widget>[
                  ListTile(
                    leading: const Icon(Icons.person),
                    title: const Text('Personal'),
                  ),
                  ListTile(
                    leading: const Icon(Icons.message),
                    title: const Text('information'),
                  ),
                  ListTile(
                    leading: const Icon(Icons.settings),
                    title: const Text('about'),
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}

2.MainPage.dart

import 'package:flutter/material.dart';
import 'findpage.dart';
import 'mypage.dart';
import 'contactpage.dart';
import 'homepage.dart';
import 'mydrawer.dart';
 
class MainPage extends StatefulWidget{
  const MainPage({Key? key}) : super(key: key);
 
  @override
  State<StatefulWidget> createState()=>_MainPageState();
}
 
class _MainPageState extends State<MainPage>{
 
  var allPages=[HomePage(),ContactPage(),FindPage(),MyPage()];
  var currentIndex=0;
 
 
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar( //导航栏
        title: Text("App Name"),
        actions: <Widget>[ //导航栏右侧分享菜单
          IconButton(icon: Icon(Icons.share), onPressed: () {}),
        ],
      ),
      drawer: MyDrawer(), //菜单抽屉
      body: allPages[currentIndex],
      backgroundColor: Colors.green,
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: currentIndex,
        type: BottomNavigationBarType.fixed,
        unselectedItemColor: Colors.grey,
        selectedItemColor: Colors.blue,
        
        items: [
          BottomNavigationBarItem(
              icon: Icon(Icons.home),
              label: "首页",
              //backgroundColor:Colors.blue
          ),
 
          BottomNavigationBarItem(
              icon: Icon(Icons.person),
              label: "通讯录",
              //backgroundColor:Colors.blue
          ),
 
          BottomNavigationBarItem(
              icon: Icon(Icons.find_in_page),
              label: "发现",
              //backgroundColor:Colors.blue
          ),
 
          BottomNavigationBarItem(
              icon: Icon(Icons.flip_outlined),
              label: "我的",
              //backgroundColor:Colors.blue
          ),
        ],
 
        onTap: (index){
          setState(() {
            print("the index is :$index");
            currentIndex=index;
          });
        },
      ),
 
      floatingActionButton: FloatingActionButton( //悬浮按钮
          child: Icon(Icons.add),
          onPressed:_onAddNum
      ),
    );
  }
  void _onAddNum(){
  }
}

3.效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: FlutterDrawer抽屉菜单示例详解

本文链接: https://lsjlt.com/news/143567.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • FlutterDrawer抽屉菜单示例详解
    本文实例为大家分享了Flutter Drawer抽屉菜单示例代码,供大家参考,具体内容如下 一.Flutter Drawer组件简介 1.源码查看 const Drawer({   ...
    99+
    2024-04-02
  • WPF实现抽屉菜单效果的示例代码
    WPF 实现抽屉菜单 框架使用大于等于.NET40;Visual Studio 2022;项目使用 MIT 开源许可协议;更多效果可以通过GitHub[1]|码云...
    99+
    2022-11-13
    WPF 抽屉菜单 WPF 菜单
  • FlutterUI实现侧拉抽屉菜单
    在移动开发中,我们可以通过底部导航栏、标签页或是侧边抽屉菜单来实现导航。这是在小屏幕上可以充分利用空间。我们设计不仅要实用而且要有趣,这样才算得上好的 UI 设计。这件我们在 Sca...
    99+
    2024-04-02
  • Android开发实现抽屉菜单
    本文实例为大家分享了Android开发实现抽屉菜单的具体代码,供大家参考,具体内容如下 实现效果 点击菜单图表即可进入抽屉 代码实现 1、打开app/build.gradle文件...
    99+
    2024-04-02
  • Android组件之DrawerLayout实现抽屉菜单
    DrawerLayout组件同样是V4包中的组件,也是直接继承于ViewGroup类,所以这个类也是一个容器类。 抽屉菜单的摆放和布局通过android:layout_grav...
    99+
    2022-06-06
    菜单 drawerlayout 抽屉 Android
  • Android怎么实现侧滑抽屉菜单
    这篇文章将为大家详细讲解有关Android怎么实现侧滑抽屉菜单,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。侧滑抽屉菜单 前言正文一、创建项目二、添加滑动菜单三、UI美化四、添加导航视图五、菜单分类六、动...
    99+
    2023-06-14
  • Android开发如何实现抽屉菜单
    这篇文章主要介绍Android开发如何实现抽屉菜单,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现效果点击菜单图表即可进入抽屉代码实现1、打开app/build.gradle文件,在dependencies闭包中添...
    99+
    2023-06-25
  • Android 侧滑抽屉菜单的实现代码
    目录前言正文一、创建项目二、添加滑动菜单三、UI美化四、添加导航视图五、菜单分类六、动态菜单七、源码运行效果图: 前言   滑动菜单相信都不会陌生,你可能见...
    99+
    2024-04-02
  • Flutter UI如何实现侧拉抽屉菜单
    小编给大家分享一下Flutter UI如何实现侧拉抽屉菜单,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在移动开发中,我们可以通过底部导航栏、标签页或是侧边抽屉菜单来实现导航。这是在小屏幕上可以充分利用空间。我们...
    99+
    2023-06-29
  • Android 抽屉效果的导航菜单实现代码实例
    看了很多应用,觉得这种侧滑的抽屉效果的菜单很好。 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而且感觉能放很多东西。 关于实现,...
    99+
    2022-06-06
    导航菜单 菜单 抽屉 Android
  • Android开源AndroidSideMenu实现抽屉和侧滑菜单
    AndroidSideMenu能够让你轻而易举地创建侧滑菜单。需要注意的是,该项目自身并不提供任何创建菜单的工具,因此,开发者可以自由创建内部菜单。 核心类如下: p...
    99+
    2022-06-06
    菜单 抽屉 Android
  • 小程序原生实现左滑抽屉菜单
    目录WXS 响应事件方案A页面结构和样式WXS 事件回调函数WXS 脚本遮罩层方案B为什么要使用 WXS结语 & 参考资料参考资料:在移动端,侧滑菜单是一个很常用的组件(通常...
    99+
    2024-04-02
  • 小程序如何实现左滑抽屉菜单
    这篇文章将为大家详细讲解有关小程序如何实现左滑抽屉菜单,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在移动端,侧滑菜单是一个很常用的组件(通常称作 Drawer,抽屉)。因为现在手机屏幕太大,点击角落的菜...
    99+
    2023-06-20
  • Android实现自定义滑动式抽屉效果菜单
    在Andoird使用Android自带的那些组件,像SlidingDrawer和DrawerLayout都是抽屉效果的菜单,但是在项目很多要实现的功能都收到Android这些自...
    99+
    2022-06-06
    自定义 菜单 抽屉 Android
  • vue移动端时弹出侧边抽屉菜单效果
    效果图: aside.vue: <template> <div class="aside"> <div style=" ...
    99+
    2024-04-02
  • Android抽屉导航Navigation Drawer实例解析
    我们重点来研究一下Android抽屉导航 NavigationDrawer。先来感性认识一下这种效果吧: 看了很多应用,觉得这种侧滑的抽屉效果的菜单很好。不用切换到另一个页...
    99+
    2022-06-06
    Android
  • Flutter中抽屉组件Drawer使用详解
    本文实例为大家分享了Flutter中抽屉组件Drawer实现代码,供大家参考,具体内容如下 1、概述 Scalfold 是 Flutter MaterialApp 常用的布局 Wid...
    99+
    2024-04-02
  • Android控件之SlidingDrawer(滑动式抽屉)详解与实例分享
    SlidingDrawer效果想必大家也见到过,它就是1.5模拟器上进入应用程序列表的效果。下面是截图 一、简介  SlidingDrawer隐藏屏外的内容,并允许...
    99+
    2022-06-06
    抽屉 Android
  • Android5.0 旋转菜单实例详解
    先给大家展示下效果图: 这个效果是安卓5.0推出 “材料设计” Ui效果 以前一直没留意到,写篇文章当成备忘录 上面的效果图 用 DrawerLayout和Toolbar实现...
    99+
    2022-06-06
    菜单 Android
  • flutter实现一个列表下拉抽屉的示例代码
    目录使用源码使用 通过监听滚动事件实现DragOpenDrawer 组件,可以给滚动组件添加一个下拉抽屉。其使用方式如下: DragOpenDrawer(   openDuratio...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作