热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flutter控件SliverAppBar

flutter控件练习demo地址:githubSliverAppBar1.1简介SliverAppBar“应用栏”相当于升级版的appbar于AppBar位置的固定

flutter控件练习demo地址:github

SliverAppBar

1.1 简介

SliverAppBar “应用栏” 相当于升级版的 appbar 于 AppBar 位置的固定的应用最上面的; 而 SliverAppBar 是可以跟随内容滚动的;

注意点:通常结合 CustomScrollView 、 NestedScrollView 来使用它, NestedScrollView里面可以嵌套Listview 完成滑动

1.2 基本用法

除了和appbar一样的属性之外还有:

  • pinned = false, //是否固定在顶部,往上滑,导航栏可以隐藏
  • flexibleSpace 。可以展开区域,通常是一个FlexibleSpaceBar
  • elevation, Z轴高度,也就是阴影 默认是4 默认就是有高度 阴影的,这个也可以修改的
  • forceElevated false,//展开flexibleSpace之后是否显示阴影
  • expandedHeight: 200.0, 可滚动视图的高度,伸缩区域大小

注意属性(查文档,都是下面的写法,但是自己没有测试出来)

  • snap:false, //与floating结合使用
  • floating = false,//是否随着滑动隐藏标题 滑动到最上面,再滑动是否隐藏导航栏的文字和标题等的具体内容,为true是隐藏,为false是不隐藏

1.3 图片

当 pinned = true 的时候

当 pinned = false 的时候

1.4 demo

import 'package:flutter/material.dart';class SliverAppBarDemo extends StatelessWidget {@overrideWidget build(BuildContext context) {// TODO: implement buildreturn Scaffold(body: NestedScrollView(headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {return [SliverAppBar(//leading, // 如果省略了 leading ,但 AppBar 在带有 Drawer 的 Scaffold 中,则会插入一个 button 以打开 Drawer。如果没有Drawer , 默认的是个返回箭头//title, // 标题//actions, // 右边的icon, 一般的是icon 或者是文字//bottom, //底部内容区域 通常是个 tabbar//elevation, //阴影,纸墨设计中控件的 z 坐标顺序,默认值为 4,对于可滚动的 SliverAppBar,当 SliverAppBar 和内容同级的时候,该值为 0, 当内容滚动 SliverAppBar 变为 Toolbar 的时候,修改 elevation 的值//brightness, // 状态栏 两种 Brightness.light, 白底黑字 Brightness.dark:黑底白字//centerTitle, //标题是否居中, 标题是否居中显示,默认值根据不同的操作系统,显示方式不一样primary: true,// 预留状态栏forceElevated: false, //展开flexibleSpace之后是否显示阴影automaticallyImplyLeading: true, // 如果有 leading 这个不会管用 ,相当于忽略这个参数 ; 如果没有leading ,当有侧边栏的时候, false:不会显示默认的图片,true 会显示 默认图片,并响应打开侧边栏的事件// titleSpacing: NavigationToolbar.kMiddleSpacing,//flexibleSpace 和 title 的距离 默认是重合的expandedHeight: 200.0,//200.0, 可滚动视图的高度 伸缩区域大小snap: true,//与floating结合使用floating: true, //是否随着滑动隐藏标题,滑动到最上面,再snap滑动是否隐藏导航栏的文字和标题等的具体内容,为true是隐藏,为false是不隐藏
// title: _title(),pinned: false, //是否固定在顶部,往上滑,导航栏可以隐藏leading:Icon(Icons.menu),flexibleSpace:FlexibleSpaceBar(//可以展开区域,通常是一个FlexibleSpaceBarcenterTitle: true,title: _title(),background: Image.asset("images/header_bg.jpg",fit: BoxFit.fill,),),)];},body: Center(child: ListView.builder(padding: const EdgeInsets.all(16.0),shrinkWrap: true,itemBuilder: (BuildContext context, int index) {if (index.isOdd) return new Divider();return ListItem(index/2);},itemCount: 40,),),));}_title() {return Text("标题",style: TextStyle(color: Colors.white,fontSize: 16.0,));}Widget ListItem(var index) {return new ListTile(title: Center(child: Text("条目$index",style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.w700),),),);}
}



推荐阅读
author-avatar
橄榄村
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有