SliverAppBar参数
const SliverAppBar({ Key key, this.leading, //左侧标题 this.automaticallyImplyLeading = true, this.title, //标题 this.actions, //菜单 this.flexibleSpace, //可以展开区域,通常是一个FlexibleSpaceBar this.bottom, //底部内容区域 this.elevation, //阴影 this.forceElevated = false, this.backgroundColor, //背景色 this.brightness, /主题明亮 this.iconTheme, //图标主题 this.textTheme, //文字主题 this.primary = true, //是否预留高度 this.centerTitle, //标题是否居中 this.titleSpacing = NavigationToolbar.kMiddleSpacing, this.expandedHeight, //展开高度 this.floating = false, //是否随着滑动隐藏标题 this.pinned = false, //是否固定在顶部 this.snap = false, //与floating结合使用 })
leading:在标题前面显示的一个控件,在首页通常显示应用的 logo;在其他界面通常显示为返回按钮
title: Toolbar 中主要内容,通常显示为当前界面的标题文字
actions:一个 Widget 列表,代表 Toolbar 中所显示的菜单,对于常用的菜单,通常使用 IconButton 来表示;对于不常用的菜单通常使用 PopupMenuButton 来显示为三个点,点击后弹出二级菜单
bottom:一个 AppBarBottomWidget 对象,通常是 TabBar。用来在 Toolbar 标题下面显示一个 Tab 导航栏
elevation:纸墨设计中控件的 z 坐标顺序,默认值为 4,对于可滚动的 SliverAppBar,当 SliverAppBar 和内容同级的时候,该值为 0, 当内容滚动 SliverAppBar 变为 Toolbar 的时候,修改 elevation 的值
flexibleSpace:一个显示在 AppBar 下方的控件,高度和 AppBar 高度一样,可以实现一些特殊的效果,该属性通常在 SliverAppBar 中使用
backgroundColor:APP bar 的颜色,默认值为 ThemeData.primaryColor。改值通常和下面的三个属性一起使用
brightness:App bar 的亮度,有白色和黑色两种主题,默认值为 ThemeData.primaryColorBrightness
iconTheme:App bar 上图标的颜色、透明度、和尺寸信息。默认值为 ThemeData.primaryIconTheme
textTheme: App bar 上的文字样式。默认值为 ThemeData.primaryTextTheme
centerTitle: 标题是否居中显示,默认值根据不同的操作系统,显示方式不一样
虽然基本相同,构造方法也是非常的简单,但是我们却不能直接使用它,由官方文档可以看到我们通常结合ScrollView来使用它。
我们结合CustomScrollView来看下例子吧:
import 'package:flutter/material.dart'; import 'datas.dart'; class SliverDemo extends StatelessWidget { @override Widget build(BuildContext context) { return CustomScrollView( slivers: <Widget>[ SliverAppBar( //设置appBar是否固定到顶部 floating: false, //设置appBar的高度 expandedHeight: 100.0, flexibleSpace: FlexibleSpaceBar( title: const Text('Demo'), background: Image.network( datas[5].imageUrl, fit: BoxFit.cover, ), ), ), SliverGrid( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, crossAxisSpacing: 8.0, mainAxisSpacing: 8.0), delegate: SliverChildBuilderDelegate( (BuildContext context, int index) { return Container( child: Image.network( datas[index].imageUrl, fit: BoxFit.cover, ), ); }, childCount: datas.length, ), ), SliverList( delegate: SliverChildBuilderDelegate((context,index){ return Container( color: Colors.grey[100], child: Text('$index个item'), ); },childCount: 30,), ), ], ); } }
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接