import 'package:flutter/material.dart';
import 'package:xxx/bloc/bloc.dart';
import 'package:xxx/model/model.dart'; class ArticlePage extends StatelessWidget {
ArticlePage(this.bloc); final ArticleBloc bloc; @override
Widget build(BuildContext context) {
bloc.addContent();
return StreamBuilder(
stream: bloc.dataBloc.stream,
builder: (context, snapshot) {
if (snapshot.hasData) {
ContentModel content = snapshot.data;
print(content.mainPost);
return Scaffold(
appBar: AppBar(
title: Text(content.title, style: TextStyle(fontSize: 14.0),),
),
body: CustomScrollView(
slivers: <Widget>[ SliverPadding(
padding: EdgeInsets.all(8.0),
sliver: SliverGrid(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
mainAxisSpacing: 10.0,
crossAxisSpacing: 10.0,
childAspectRatio: 4.0,
),
delegate: SliverChildBuilderDelegate(
(context, int index) {
return Container(
color: Colors.grey,
child: Text('hello'),
);
},
childCount: 20,
),
),
), SliverFixedExtentList(
itemExtent: 50.0,
delegate: SliverChildBuilderDelegate((context, int index) {
return Container(
color: Colors.blueGrey,
child: Text('hello2'),
);
}),
),
],
),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: (){}
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
bottomNavigationBar: BottomNavigationBar(
items: [
BottomNavigationBarItem(
icon: Icon(Icons.home),
title: Text('home')
),
BottomNavigationBarItem(
icon: Icon(Icons.map),
title: Text('My')
),
]
),
);
} else {
return Scaffold(
appBar: AppBar(
title: Text('has no data'),
),
body: Text('has no data'),
);
}
},
);
}
}
//
//class ArticlePage extends StatelessWidget {
// ArticlePage(this.bloc);
//
// final ArticleBloc bloc;
//
// @override
// Widget build(BuildContext context) {
// bloc.addContent();
// return StreamBuilder(
// stream: bloc.dataBloc.stream,
// builder: (context, snapshot) {
// if (snapshot.hasData) {
// ContentModel content = snapshot.data;
// print(content.mainPost);
// return Scaffold(
// appBar: AppBar(
// title: Text(content.title),
// ),
// body: Column(
// children: <Widget>[
// //main area
// Text('post owner: ${content.owner}'),
// Text('post owner: ${content.ownerAvatar}'),
// Container(
// width: double.infinity,
// color: Colors.red,
// child: Column(
// children: content.mainPost,
// ),
// ),
// Text(content.mainPostTime),
// //replies
//
//
// ],
// ),
// );
// } else {
// return Scaffold(
// appBar: AppBar(
// title: Text('has no data'),
// ),
// body: Text('has no data'),
// );
// }
// },
// );
// }
//}

sliver的更多相关文章

  1. flutter Sliver滑动视图组件

    import 'package:flutter/material.dart'; import './model/post.dart'; class SliverDemo extends Statele ...

  2. Flutter(75):Sliver组件之SliverFixedExtentList

    Flutter教学目录持续更新中 Github源代码持续更新中 1.SliverFixedExtentList 可以固定Item高度的SliverList 2.SliverFixedExtentLis ...

  3. XDFZOI 月赛 201905 Sliver

    组题人自己组完过后,才发现自己还是太弱了... T1 简单模拟. 按照游戏规则直接模拟显然是不明智的,所以我们可以像石头剪刀布一样,将判断改变为检验. 同时,我们发现,一共只有48种牌,所以我们可以直 ...

  4. 专业上的常用的工具和类库集 By 老衣

    Visual Studio 2013 扩展 CodeMaid: 可快速整理代码文件,清理不必要的代码和杂乱的格式.并在开发时实时提供代码复杂度的报告,以便帮助开发人员降低代码复杂度.提高代码质量. C ...

  5. DNS解析过程和域名收敛、域名发散、SPDY应用

    前段时间项目要做域名收敛,糊里糊涂的完成了,好多原理不清晰,现在整理搜集下知识点. 域名收敛的目的是什么?简单来说就是域名解析慢.那为什么解析慢?且听下文慢慢道来. 什么是DNS? DNS( Doma ...

  6. 《CSS权威指南》读书笔记

    一.css和文档层叠 css规定了冲突规则,这些规则统称为层叠.这些规则定义了样式发生冲突时以优先级高的为准. 常用的优先级判定: 1. 开发者样式>读者样式>浏览器样式(除非使用!imp ...

  7. JavaScript的学习--JavaScript设计模式的总结

    这篇博客只是自己对设计模式的理解的备忘~ 看完了<JavaScript设计模式>这本书,一直没有写博客记录一下,最近抽出时间来重读了一下,就顺便记录一下~ 如果你只是想粗略了解一下Java ...

  8. HTML快速入门2

    三.版面风格控制 1. 字体控制 A. 字体大小 用 <font Size=#> 和 </font> 表示,#为字号: 1 - 7 ,缺省为 3 ,可用 <basefon ...

  9. <老友记>学习笔记

    这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的 ...

随机推荐

  1. How to do sparse input text classification(dnn) using tensorflow

    You can get complete example code from https://github.com/chenghuige/hasky/tree/master/applications ...

  2. Golang 笔记 5 go语句

     Go语句和通道类型是Go语言的并发编程理念的最终体现.与defer语句相同,go语句也可以携带一个表达式语句.Go语句的执行会很快结束,并不会对当前流程的进行造成阻塞或明显的延迟.一个简单的示例: ...

  3. loadrunner笔记(一):下载、安装loadrunner和负载压力测试概念说明

    (一)   下载和安装 下载:(没账号的话得先注册一个账号) https://software.microfocus.com/en-us/products/loadrunner-load-testin ...

  4. MySql的主从复制以及读写分离详解

    MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中, ...

  5. fastdfs-nginx-module-master的一些奇怪的特点

    测试环境和生产环境分别是两套fastdfs,但是网络没有隔离,今天发现一个奇怪的现象就是测试环境的文件,通过生产环境的入口,居然也可以访问到,我草了,奇怪了 研究发现功劳是fastdfs-nginx- ...

  6. Gym 101775C - Traffic Light - [思维题]

    题目链接:http://codeforces.com/gym/101775/problem/C 题意: 给出 $N$ 个红绿灯,又给出 $N+1$ 个距离 $S_i = S_0,S_1, \cdots ...

  7. POJ 3126 - Prime Path - [线性筛+BFS]

    题目链接:http://poj.org/problem?id=3126 题意: 给定两个四位素数 $a,b$,要求把 $a$ 变换到 $b$.变换的过程每次只能改动一个数,要保证每次变换出来的数都是一 ...

  8. Q: Is Consul eventually or strongly consistent?

    强一致  最终一致 Frequently Asked Questions - Consul by HashiCorp https://www.consul.io/docs/faq.html Q: Is ...

  9. iOS 微信打开第三方应用(Universal Links 和 URL Schemes)

    一.前言 项目中时常有这种需求, 是通过链接跳转到应用内部,现在iOS主流的方案有两个 Schema: 常用在于一个应用跳转到另一个应用内部,属于应用间的跳转.当然ios9以下,网页可以通过schem ...

  10. SQL UPDATE嵌套使用

    遇见的问题 1.更新语句,更新字段 UPDATE number SET sumab = 2 WHERE id =1 求和 SELECT SUM(num_a+num_b)FROM number WHER ...