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. SSIS - 2.使用脚本任务弹出对话框

    步骤如下: 1.打开Visual Studio 2012或者SSDT工具->单击“文件”->选择"新建"打开创建新工程的对话框如下: 2.在"Business ...

  2. Vue 前端面试题

    Vue 前端面试题 1. 说一下 Vue 的双向绑定数据的原理 vue 实现数据双向绑定主要是:采用数据劫持结合“发布者 - 订阅者”模式的方式,通过 Object.defineProperty() ...

  3. 旧版本的firefox 下载 和 安装(查找web元素路径) ---web 元素 自动化测试

    ftp.mozilla.orgpubfirefoxreleases   旧版下载地址   选择47版本     因为48后面的会进行插件校验    这样firepath安装不成功   安装文件:在百度 ...

  4. 线性表->应用->一元多项式

    文字描述 在数学上,一个一元多项式可以按升幂写成如下形式. 它由n+1个系数唯一确定.因此,在计算机里,可以用一个线性表P来表示,P中每一项的指数i隐含在其系数pi的序号里.   但是在通常的应用中, ...

  5. Excel文件导入导出(基于Nodejs、exceljs)

    Excel导入.导出是大多数项目的管理后台必备功能.几年来使用过多个该功能的实现包,最近一次开发该功能,突然发现一个人气极高(3000+)的包,这里记录一下使用方法. 大凡厉害的技术的文档咋一看都想字 ...

  6. memory error python报错

    np.array时报错内存溢出,检查了python安装的是64位版本,通过下面dtype=np.uint8不再报错texts_vec = (np.array(texts_vec,dtype=np.ui ...

  7. spring-data-mongodb中的MongoTemplate与MongoRepository

    springboot添加maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <a ...

  8. MVC Views文件夹下js无法访问问题解决方案

    出现这个问题是因为webconfig做的限制,可修改相应Views下的webconfig文件来解决. <system.webServer> <handlers> <rem ...

  9. NSRunLoop 在mac command line tool上的部分运用

    首先RunLoop相关博客参考这篇https://blog.csdn.net/lengshengren/article/details/12905627. 最近开发了一个mac上的命令行工具,我在主线 ...

  10. Asp.net Web Api开发(第四篇)Help Page配置和扩展

    https://blog.csdn.net/sqqyq/article/details/52708613