Flutter UI实现侧拉抽屉菜单

在移动开发中,我们可以通过底部导航栏、标签页或是侧边抽屉菜单来实现导航。这是在小屏幕上可以充分利用空间。我们设计不仅要实用而且要有趣,这样才算得上好的 UI 设计。这件我们在 Scaffold 通常是上下结构,头部是标题栏下面主界面。

@override
Widget build(BuildContext context) {
  // TODO: implement build
  return Scaffold(
    appBar: AppBar(title: Text(title),),
    body: Center(child: Text('$title Demo'),),
  ),
 ),
);

Scaffold 除了 appBar 和 body 属性以为还有 drawer 属性方便我们定义侧边抽屉。

@override
Widget build(BuildContext context) {
  // TODO: implement build
  return Scaffold(
    appBar: AppBar(title: Text(title),),
    body: Center(child: Text('$title Demo'),),
    drawer: Drawer(
    )
    ),
  ),
);

这样便可以在 child 为侧拉抽屉添加内容,内容是添加一个列表。DrawerHeader 添加标题栏。然后 decoration 中添加背景颜色。然后通过 ListTile 组件来添加一条一条内容

child: ListView(
      padding: EdgeInsets.zero,
      children: <Widget>[
        DrawerHeader(
          child: Text('$title Demo'),
          decoration: BoxDecoration(
            color: Colors.blue
          ),
        ),
        ListTile(
          title: Text("React"),
          onTap: (){
            Navigator.pop(context);
          },
        ),
        ListTile(
           title: Text("Vue"),
           onTap: (){
            Navigator.pop(context);
           },
        )
      ],
),

为 ListTile 添加 onTap 事件来通过 Navigator 返回到主界面。

ListTile(
      title: Text("Vue"),
      onTap: (){
        Navigator.pop(context);
      },
 )

完整代码

import 'package:flutter/material.dart';
 
class DrawerApp extends StatelessWidget{
 
  final appTitle = "侧滑抽屉";
 
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
      title: appTitle,
      home: MyHomePage(title:appTitle),
    );
  }
  
}
 
class MyHomePage extends StatelessWidget{
  final String title;
  MyHomePage({Key key,this.title}):super(key:key);
 
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      appBar: AppBar(title: Text(title),),
      body: Center(child: Text('$title Demo'),),
      drawer: Drawer(
        child: ListView(
          padding: EdgeInsets.zero,
          children: <Widget>[
            DrawerHeader(
              child: Text('$title Demo'),
              decoration: BoxDecoration(
                color: Colors.blue
              ),
            ),
            ListTile(
              title: Text("React"),
              onTap: (){
                Navigator.pop(context);
              },
            ),
            ListTile(
              title: Text("Vue"),
              onTap: (){
                Navigator.pop(context);
              },
            )
          ],
        ),
      ),
    );
  }
}

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

(0)

相关推荐

  • Flutter中抽屉组件Drawer使用详解

    本文实例为大家分享了Flutter中抽屉组件Drawer实现代码,供大家参考,具体内容如下 1.概述 Scalfold 是 Flutter MaterialApp 常用的布局 Widget,接受一个 drawer属性,支持配置 Drawer,可以实现从侧边栏拉出导航面板,好处是把一些功能菜单折叠起来,通常Drawer是和Listview组件或者 Column组合使用进行纵向布局.Listview组件是竖排排列的,上下可滑动. [注意]如果没有设置 AppBar 的 leading 属性,则当使用

  • Flutter 超实用简单菜单弹出框 PopupMenuButton功能

    相信在实际开发过程当中,肯定少不了这样的功能: 点击 AppBar 右上角的按钮,弹出一个菜单供用户选择. 幸运的是,Flutter 提供给我们了一个 Widget,直接就能实现如上的效果. PopupMenuButton 还是老规矩,先看官方的说明: Displays a menu when pressed and calls onSelected [1] when the menu is dismissed because an item was selected. The value pa

  • flutter实现底部抽屉效果

    本文实例为大家分享了flutter实现底部抽屉效果的具体代码,供大家参考,具体内容如下 安卓:showModalBottomSheetIOS:showCupertinoModalPopup 效果图 完整代码 import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; ///@作者: Q.L ///@创建日期: 2021-09-09 10:55 ///@描述: {底部抽屉} class Actio

  • Flutter质感设计之弹出菜单

    PopupMenuButton控件即弹出菜单控件,点击控件会出现菜单. import 'package:flutter/material.dart'; class MenusDemo extends StatefulWidget { @override _MenusDemoState createState() => new _MenusDemoState(); } class _MenusDemoState extends State<MenusDemo> { String _body

  • Flutter实现仿微信底部菜单栏功能

    import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget{ @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: MyHomePage(), ), ); } } class MyHomePage extends Sta

  • Flutter实现底部菜单导航

    简介 现在我们的 APP 上面都会在屏幕下方有一排的按钮,点击不同的按钮可以进入不同的界面.就是说在界面的底部会有一排的按钮导航.可看下面的图示. 完成图示 程序工程目录 梳理下实现步骤 我们需要实现这个底部菜单导航,就需要有底部菜单的那一排图标按钮.图标按钮是固定在一个工具栏 "bar" 上面.然后呢,需要分别需要有按钮对应的界面,就是说按钮有多少个,那么界面需要对应的有多少个.我们来一个清单列表: 按钮图标区域.由于展示的方式都是一样的,我们需要有一个单独的控件,循环出来就好. 工

  • Flutter Drawer实现抽屉菜单效果

    本文实例为大家分享了Flutter Drawer实现抽屉菜单的具体代码,供大家参考,具体内容如下 import 'package:flutter/material.dart'; void main() {   runApp(MyApp()); } class MyApp extends StatelessWidget {   @override   Widget build(BuildContext context) {     return MaterialApp(       debugSh

  • Flutter Drawer抽屉菜单示例详解

    本文实例为大家分享了Flutter Drawer抽屉菜单示例代码,供大家参考,具体内容如下 一.Flutter Drawer组件简介 1.源码查看 const Drawer({     Key? key,     this.elevation = 16.0, //阴影效果大小     this.child, //内容元素     this.semanticLabel, //关闭/打开抽屉时的通知信息   })  二.抽屉菜单示例 1.菜单项,使用 ListTile 实现 Expanded(  

  • flutter ExpansionTile 层级菜单的实现

    开发环境 win10 Android Studio 效果 用于多级菜单展示,或选择. 如 每个省,市,县: 如 树木的病虫害: 关键代码 @override Widget build(BuildContext context) { return ListTile( title: _buildItem(widget.bean), ); } Widget _buildItem(NameBean bean){ if(bean.children.isEmpty){ return ListTile( ti

  • Flutter UI实现侧拉抽屉菜单

    在移动开发中,我们可以通过底部导航栏.标签页或是侧边抽屉菜单来实现导航.这是在小屏幕上可以充分利用空间.我们设计不仅要实用而且要有趣,这样才算得上好的 UI 设计.这件我们在 Scaffold 通常是上下结构,头部是标题栏下面主界面. @override Widget build(BuildContext context) {   // TODO: implement build   return Scaffold(     appBar: AppBar(title: Text(title),)

  • Android 侧滑抽屉菜单的实现代码

    侧滑抽屉菜单 前言正文一.创建项目二.添加滑动菜单三.UI美化四.添加导航视图五.菜单分类六.动态菜单七.源码 运行效果图: 前言   滑动菜单相信都不会陌生,你可能见过很多这样的文章,但我的文章会给你不一样的阅读和操作体验. 正文   写博客,自然是从创建项目开始了,这样你可以更好的知道这个过程中经历了什么. 一.创建项目   项目就命名为DrawerDemo, 绝对的手把手教学,让你清楚每一步怎么做. 然后打开app下的build.gradle,在android{}闭包中添加如下代码: //

  • 微信小程序实战之自定义抽屉菜单(7)

    微信提供了动画api,就是下面这个 相关链接:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-animation.html#wxcreateanimationobject 通过使用这个创建动画的api,可以做出很多特效出来 下面介绍一个抽屉菜单的案例 实现代码: wxml: <!--button--> <view class="btn" bindtap="powerDrawer" data-sta

  • Android组件之DrawerLayout实现抽屉菜单

    DrawerLayout组件同样是V4包中的组件,也是直接继承于ViewGroup类,所以这个类也是一个容器类. 抽屉菜单的摆放和布局通过android:layout_gravity属性来控制,可选值为left.right或start.end.通过xml来布局的话,需要把DrawerLayout作为父容器,组界面布局作为其第一个子节点,抽屉布局则紧随其后作为第二个子节点,这样就做就已经把内容展示区和抽屉菜单区独立开来,只需要分别为两个区域设置内容即可.android提供了一些实用的监听器,重载相

  • React Native自定义控件底部抽屉菜单的示例

    一.需求分析 原生开发中,自定义View可谓是屡见不鲜的事情,往往系统的控件总不能满足现实的需求.五花八门的产品设计需要我们做出不同的View.关于自定义View的内容网上已经有很多的博文,本篇博客要和大家分享如何在React Native中自定义组件实现抽屉菜单控件效果.分享功能在App中的重要性想必是不言而喻的,那么RN中如何实现这种效果呢? React Native 系统库中只提供了IOS的实现,即ActionSheetIOS.该控件的显示方式有两种实现: (1)showActionShe

  • 小程序原生实现左滑抽屉菜单

    目录 WXS 响应事件 方案A 页面结构和样式 WXS 事件回调函数 WXS 脚本 遮罩层 方案B 为什么要使用 WXS 结语 & 参考资料 参考资料: 在移动端,侧滑菜单是一个很常用的组件(通常称作 Drawer,抽屉).因为现在手机屏幕太大,点击角落的菜单按钮明显不如在屏幕中间滑动方便. 相比其他平台,小程序的组件库支持明显还不够完善,各个框架也还不太成熟.由于之前使用框架的过程中被各种神秘bug搞的头秃,还是用回了原生环境. 最近研究了一下如何在原生框架中实现滑动抽屉菜单效果,本来以为很麻

  • Vue+Element UI实现下拉菜单的封装

    本文实例为大家分享了Vue+Element UI实现下拉菜单封装的具体代码,供大家参考,具体内容如下 1.效果图 先贴个效果图,菜单项没有做样式美化,图中显示的边框也是没有的(边框是外部容器的边框),其它的根据需要自己修改一下样式即可. 2.组件封装 组件的封装用到了CSS动画.定位.,以及Element UI提供的下拉菜单组件el-dropdown.代码如下, <template> <div class="all" @click="clickFire&qu

  • Android开发实现抽屉菜单

    本文实例为大家分享了Android开发实现抽屉菜单的具体代码,供大家参考,具体内容如下 实现效果 点击菜单图表即可进入抽屉 代码实现 1.打开app/build.gradle文件,在dependencies闭包中添加如下内容: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:24.2.1' testCompile 'junit:ju

随机推荐