body: CustomScrollView(
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate(
(context, int index) {
Container postPiece;
if (index == 0) {
//post owner
postPiece = Container(
padding: EdgeInsets.all(2.0),
child: Flex(
direction: Axis.vertical,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
padding: EdgeInsets.all(3.0),
color: Colors.black38,
child: Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
height: 50.0,
width: 50.0,
child: Image.network(
content.ownerAvatar,
fit: BoxFit.cover,
),
padding: EdgeInsets.all(7.0),
),
Expanded(
child: Container(
padding: EdgeInsets.only(left: 7.0),
child: Text(
content.owner,
),
alignment: Alignment.centerLeft,
),
), Container(
alignment: Alignment.centerRight,
child: Text(content.mainPostTime +
' ' +
content.click),
), ],
), ],
),
),
Flexible(
child: Container(
padding: EdgeInsets.all(7.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: content.mainPost,
),
),
),
Container(
child: PublicFunc(),
),
Divider(
color: Colors.black38,
),
],
));
} else if (content.replyPosts.length > 0) {
//replies
if (content.replyPosts.length > index) {
postPiece = Container(
padding: EdgeInsets.all(2.0),
child: Flex(
direction: Axis.vertical,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
height: 50.0,
color: Colors.black38,
child: Row(
children: <Widget>[
Container(
padding: EdgeInsets.all(7.0),
child: Image.network(
content.replyPosts[index]
['avatar']), //avatar
),
Container(
padding: EdgeInsets.only(left: 10.0),
child: Text(content.replyPosts[index]
['name']), //name
),
Expanded(
child: Container(
alignment: Alignment.centerRight,
child: Text(
content.replyPosts[index]['time']),
),
),
],
),
),
Container(
padding: EdgeInsets.all(10.0),
alignment: Alignment.topLeft,
child: content.replyPosts[index]['content'][0],
),
],
));
} else if (content.replyPosts.length == index) {
//bottom last reply
postPiece = Container(
padding: EdgeInsets.all(2.0),
child: Flex(
direction: Axis.vertical,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
height: 50.0,
color: Colors.black38,
padding: EdgeInsets.all(7.0),
child: Row(
children: <Widget>[
Container(
child: Image.network(
content.replyPosts[index]
['avatar']), //avatar
),
Container(
padding: EdgeInsets.only(left: 10.0),
child: Text(content.replyPosts[index]
['name']), //name
),
Expanded(
child: Container(
alignment: Alignment.centerRight,
child: Text(
content.replyPosts[index]['time']),
),
),
],
),
),
Container(
padding: EdgeInsets.all(10.0),
alignment: Alignment.topLeft,
child: content.replyPosts[index]['content'][0],
),
Container(
child: Text('1,2,3,4,5 pages'),
),
],
));
}
}
return postPiece;
},
childCount: content.replyPosts.length + 1,
),
),
],
),

  

SingleChildScrollView

return SafeArea(
child: Scaffold(
appBar: AppBar(
title: Text('add Prefix'),
),
body: Container(
width: double.infinity,
height: MediaQuery.of(context).size.height -
MediaQuery.of(context).padding.bottom -
MediaQuery.of(context).padding.top,
child: SingleChildScrollView(
child: Column(
children: <Widget>[
Container(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
width: double.infinity,
child: TextField(
maxLines: 8,
),
), Container(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
width: double.infinity,
child: Row(
children: <Widget>[
Expanded(
child: Column(
children: <Widget>[ Row(
children: <Widget>[ Expanded(
flex: 5,
child: Container(
padding: EdgeInsets.only(left: 5, right: 5),
child: TextField(
decoration: InputDecoration(
labelText: 'Whois Server'
),
),
)), Expanded(
flex: 1,
child: Container(
padding: EdgeInsets.only(left: 5, right: 5),
child: TextField(
controller: portController,
decoration: InputDecoration(
labelText: 'Port'
),
),
)), ],
), Row(
children: <Widget>[ Expanded(
flex: 3,
child: Container(
padding: EdgeInsets.only(left: 5, right: 5),
child: TextField(
decoration: InputDecoration(
labelText: 'Domain'
),
),
)), Container(
margin: EdgeInsets.only(left: 5, right: 5),
width: 70.0,
child: RaisedButton(onPressed: (){}, child: Text('GET'),),
), ],
), ],
)), ],
),
), Container(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
width: double.infinity,
child: Row(
children: <Widget>[
Container(
child: Text('Name:'),
),
Expanded(
flex: 1,
child: Container(
child: TextField(
maxLines: 1,
),
)),
SizedBox(
width: 5.0,
),
Expanded(
flex: 1,
child: Container(
child: TextField(
maxLines: 1,
),
)),
Container(
child: IconButton(
icon: Icon(Icons.arrow_forward_ios),
onPressed: () {}),
),
],
),
), Container(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
width: double.infinity,
child: Row(
children: <Widget>[
Container(
child: Text('Registrar:'),
),
Expanded(
flex: 1,
child: Container(
child: TextField(
maxLines: 1,
),
)),
SizedBox(
width: 5.0,
),
Expanded(
flex: 1,
child: Container(
child: TextField(
maxLines: 1,
),
)),
Container(
child: IconButton(
icon: Icon(Icons.arrow_forward_ios),
onPressed: () {}),
),
],
),
), Container(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
width: double.infinity,
child: Row(
children: <Widget>[
Container(
child: Text('Registrar:'),
),
Expanded(
flex: 1,
child: Container(
child: TextField(
maxLines: 1,
),
)),
SizedBox(
width: 5.0,
),
Expanded(
flex: 1,
child: Container(
child: TextField(
maxLines: 1,
),
)),
Container(
child: IconButton(
icon: Icon(Icons.arrow_forward_ios),
onPressed: () {}),
),
],
),
), Container(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
width: double.infinity,
child: Row(
children: <Widget>[
Container(
child: Text('Registrar:'),
),
Expanded(
flex: 1,
child: Container(
child: TextField(
maxLines: 1,
),
)),
SizedBox(
width: 5.0,
),
Expanded(
flex: 1,
child: Container(
child: TextField(
maxLines: 1,
),
)),
Container(
child: IconButton(
icon: Icon(Icons.arrow_forward_ios),
onPressed: () {}),
),
],
),
), Container(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
width: double.infinity,
child: Row(
children: <Widget>[
Container(
child: Text('Registrar:'),
),
Expanded(
flex: 1,
child: Container(
child: TextField(
maxLines: 1,
),
)),
SizedBox(
width: 5.0,
),
Expanded(
flex: 1,
child: Container(
child: TextField(
maxLines: 1,
),
)),
Container(
child: IconButton(
icon: Icon(Icons.arrow_forward_ios),
onPressed: () {}),
),
],
),
), Container(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
child: RaisedButton(
child: Text('SAVE'), onPressed: () {}),
), //
],
),
)
),
),
);

  

CustomScrollView的更多相关文章

  1. CustomScrollView + slivers + SliverAppBar

    import 'package:flutter/material.dart'; void main()=>runApp(MyApp()); class MyApp extends Statele ...

  2. Expanded, SingleChildScrollView, CustomScrollView, container, height, width

    SingleChildScrollView, CustomScrollView, container, init: double.inifinity. then use Expanded to con ...

  3. 【Flutter学习】页面跳转之SliverAppBar,CustomScrollView,NestedScrollView的使用

    一,flutter SliverAppbar 控件介绍 SliverAppBar “应用栏” 相当于升级版的 appbar 于 AppBar 位置的固定的应用最上面的; 而 SliverAppBar ...

  4. Flutter 粘合剂CustomScrollView控件

    老孟导读:快乐的51假期结束了,切换为努力模式,今天给大家分享CustomScrollView组件,此组件在以后的项目中会经常用到,CustomScrollView就像一个粘合剂,将多个组件粘合在一起 ...

  5. 【Flutter】可滚动组件之CustomScrollView

    前言 CustomScrollView是可以使用Sliver来自定义滚动模型(效果)的组件.它可以包含多种滚动模型,举个例子,假设有一个页面,顶部需要一个GridView,底部需要一个ListView ...

  6. React Native之 ScrollView介绍和使用

    前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...

  7. Android开发的那些坑和小技巧

    1.android:clipToPadding 意思是控件的绘制区域是否在padding里面.默认为true.如果你设置了此属性值为false,就能实现一个在布局上事半功陪的效果.先看一个效果图. 上 ...

  8. Android中scrollview嵌套HorizontalScrollView卡顿现象解决

    开发中经验会遇到滑动里面嵌入滑动的问题,但是这种情况下触摸事件就会发生冲突.导致滑动非常卡,甚至出现程序停止响应.这种情况下我们一般需要重写view.下面给出重新scrollview的方法 publi ...

  9. Android ScrollView与ViewPager滑动冲突

    前段时间做项目碰到在ScrollView里添加ViewPager,但是发现ViewPager的左右滑动和ScrollView的滑动冲突了,解决这个问题的方法是重写ScrollView. 代码: pub ...

随机推荐

  1. Android总结之json解析(FastJson Gson 对比)[申明:来源于网络]

    Android总结之json解析(FastJson Gson 对比)[申明:来源于网络] 地址:http://blog.csdn.net/u014031072/article/details/5392 ...

  2. yum安装mysql5.7

    [root@ycj ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm //下载安装 ...

  3. 扫毒>>观后感

    观后感 中学时期,甚至在小学时期,那个很懵懂的年龄, 看了什么电影,去了哪里,都要写观后感. 那个时候觉得观后感很玄学,为啥看的电影都一样,去的地方都一样, 为啥人家的观后感貌似说的真的有那么点道理, ...

  4. ORACLE中dba,user,v$等开头的常用表和视图

    一.Oracle表明细及说明1.dba_开头表    dba_users           数据库用户信息    dba_segments    表段信息    dba_extents        ...

  5. php中的echo 与print 、var_dump 的区别

    ·  echo - 可以输出一个或多个字符串 ·  print - 只允许输出一个字符串,返回值总为 1 提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1. ...

  6. YII - 打印 SQL

    $query = Order::find()->select(['order_sys_id'])->where(['order_car_id'=>'AA','order_status ...

  7. HTTP中Post与Put的区别

    PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同. POST请求 ...

  8. python多进程并发和多线程并发和协程

    为什么需要并发编程? 如果程序中包含I/O操作,程序会有很高的延迟,CPU会处于等待状态,这样会浪费系统资源,浪费时间 1.Python的并发编程分为多进程并发和多线程并发 多进程并发:运行多个独立的 ...

  9. CentOS系统/tmp目录里面的文件默认保留多久

    一.CentOS系统/tmp目录里面的文件默认保留多久 CentOS6默认保留30天,CentOS7默认保留10天 一.CentOS7系统/tmp目录里面的文件默认保留多久 CentOS7默认保留10 ...

  10. 出现error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    查看自己python的版本,然后下载自己版本Python的devel,比如python3.6.8就是 sudo apt-get install python3.6-dev