美文网首页
Flutter 基础布局 Scaffold Widget

Flutter 基础布局 Scaffold Widget

作者: Cache技术分享 | 来源:发表于2021-01-29 08:26 被阅读0次

    Flutter 基础布局 Scaffold Widget

    顾名思义,脚手架,我们在此基础上进行搭建组建进行布局,只要是在 Material 中定义的单个界面显示的 Widget 都可以使用它,它提供了诸如:抽屉(drawers)底部按钮(bottom sheets)和 底部通知(snack bars),你可以认为它是一基本快速实现某些布局的容器 Widget。

    appBar

    • title 导航
      appBar: AppBar(
        //导航标题
        title: Text('Scaffold Title'),
        //阴影大小
        elevation: 10,
        //导航栏右侧菜单
        actions: <Widget>[
          IconButton(
              icon: Icon(Icons.shopping_cart), tooltip: "购物", onPressed: null)
        ],
        //标题是否剧中
        centerTitle: true,
        //导航栏左侧按钮
        leading: IconButton(
            icon: Icon(Icons.menu), tooltip: "菜单", onPressed: null),
        //导航栏为空时,是否自动实现默认leading
        automaticallyImplyLeading: true,
      ),
    
    image.png

    body

    • 内容部分
    body: Text("body data"),
    

    bottomNavigationBar

    • 底部导航部分
      bottomNavigationBar: BottomNavigationBar(
        items: <BottomNavigationBarItem>[
          BottomNavigationBarItem(icon: Icon(Icons.home), title: Text("Home")),
          BottomNavigationBarItem(
              icon: Icon(Icons.business), title: Text("Business")),
          BottomNavigationBarItem(
              icon: Icon(Icons.school), title: Text("School")),
        ],
        currentIndex: _selectedIndex,
        fixedColor: Colors.blue,
        onTap: _onItemTap,
      ),
    
    image.png

    drawer

    • 侧滑菜单部分
      drawer: Drawer(
        child: Drawer(
          child: DrawerHeader(
            child: Text("DrawerHeader"),
          ),
        ),
      ),
    
    image.png

    floatingActionButton

    • 底部悬浮按钮
      floatingActionButton: FloatingActionButton(
        onPressed: null,
        child: Text("按钮"),
      ),
    
    image.png

    完整示例

    import 'package:flutter/cupertino.dart';
    import 'package:flutter/material.dart';
    
    class ScaffoldExample extends StatefulWidget {
      @override
      State<StatefulWidget> createState() {
        return ScaffoldExampleState();
      }
    }
    
    class ScaffoldExampleState extends State<ScaffoldExample> {
      int _selectedIndex = 0;
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            //导航标题
            title: Text('Scaffold Title'),
            //阴影大小
            elevation: 10,
            //导航栏右侧菜单
            actions: <Widget>[
              IconButton(
                  icon: Icon(Icons.shopping_cart), tooltip: "购物", onPressed: null)
            ],
            //标题是否剧中
            centerTitle: true,
            //导航栏左侧按钮
            leading:
                IconButton(icon: Icon(Icons.menu), tooltip: "菜单", onPressed: null),
            //导航栏为空时,是否自动实现默认leading
            automaticallyImplyLeading: true,
          ),
          body: Text("body data"),
          bottomNavigationBar: BottomNavigationBar(
            items: <BottomNavigationBarItem>[
              BottomNavigationBarItem(icon: Icon(Icons.home), title: Text("Home")),
              BottomNavigationBarItem(
                  icon: Icon(Icons.business), title: Text("Business")),
              BottomNavigationBarItem(
                  icon: Icon(Icons.school), title: Text("School")),
            ],
            currentIndex: _selectedIndex,
            fixedColor: Colors.blue,
            onTap: _onItemTap,
          ),
          drawer: Drawer(
            child: Drawer(
              child: DrawerHeader(
                child: Text("DrawerHeader"),
              ),
            ),
          ),
          floatingActionButton: FloatingActionButton(
            onPressed: null,
            child: Text("按钮"),
          ),
        );
      }
      void _onItemTap(int index) {
        setState(() {
          _selectedIndex = index;
        });
      }
    }
    
    

    相关文章

      网友评论

          本文标题:Flutter 基础布局 Scaffold Widget

          本文链接:https://www.haomeiwen.com/subject/dwoftltx.html