CustomScrollView
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的更多相关文章
- CustomScrollView + slivers + SliverAppBar
import 'package:flutter/material.dart'; void main()=>runApp(MyApp()); class MyApp extends Statele ...
- Expanded, SingleChildScrollView, CustomScrollView, container, height, width
SingleChildScrollView, CustomScrollView, container, init: double.inifinity. then use Expanded to con ...
- 【Flutter学习】页面跳转之SliverAppBar,CustomScrollView,NestedScrollView的使用
一,flutter SliverAppbar 控件介绍 SliverAppBar “应用栏” 相当于升级版的 appbar 于 AppBar 位置的固定的应用最上面的; 而 SliverAppBar ...
- Flutter 粘合剂CustomScrollView控件
老孟导读:快乐的51假期结束了,切换为努力模式,今天给大家分享CustomScrollView组件,此组件在以后的项目中会经常用到,CustomScrollView就像一个粘合剂,将多个组件粘合在一起 ...
- 【Flutter】可滚动组件之CustomScrollView
前言 CustomScrollView是可以使用Sliver来自定义滚动模型(效果)的组件.它可以包含多种滚动模型,举个例子,假设有一个页面,顶部需要一个GridView,底部需要一个ListView ...
- React Native之 ScrollView介绍和使用
前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...
- Android开发的那些坑和小技巧
1.android:clipToPadding 意思是控件的绘制区域是否在padding里面.默认为true.如果你设置了此属性值为false,就能实现一个在布局上事半功陪的效果.先看一个效果图. 上 ...
- Android中scrollview嵌套HorizontalScrollView卡顿现象解决
开发中经验会遇到滑动里面嵌入滑动的问题,但是这种情况下触摸事件就会发生冲突.导致滑动非常卡,甚至出现程序停止响应.这种情况下我们一般需要重写view.下面给出重新scrollview的方法 publi ...
- Android ScrollView与ViewPager滑动冲突
前段时间做项目碰到在ScrollView里添加ViewPager,但是发现ViewPager的左右滑动和ScrollView的滑动冲突了,解决这个问题的方法是重写ScrollView. 代码: pub ...
随机推荐
- SSIS - 2.使用脚本任务弹出对话框
步骤如下: 1.打开Visual Studio 2012或者SSDT工具->单击“文件”->选择"新建"打开创建新工程的对话框如下: 2.在"Business ...
- Vue 前端面试题
Vue 前端面试题 1. 说一下 Vue 的双向绑定数据的原理 vue 实现数据双向绑定主要是:采用数据劫持结合“发布者 - 订阅者”模式的方式,通过 Object.defineProperty() ...
- 旧版本的firefox 下载 和 安装(查找web元素路径) ---web 元素 自动化测试
ftp.mozilla.orgpubfirefoxreleases 旧版下载地址 选择47版本 因为48后面的会进行插件校验 这样firepath安装不成功 安装文件:在百度 ...
- 线性表->应用->一元多项式
文字描述 在数学上,一个一元多项式可以按升幂写成如下形式. 它由n+1个系数唯一确定.因此,在计算机里,可以用一个线性表P来表示,P中每一项的指数i隐含在其系数pi的序号里. 但是在通常的应用中, ...
- Excel文件导入导出(基于Nodejs、exceljs)
Excel导入.导出是大多数项目的管理后台必备功能.几年来使用过多个该功能的实现包,最近一次开发该功能,突然发现一个人气极高(3000+)的包,这里记录一下使用方法. 大凡厉害的技术的文档咋一看都想字 ...
- memory error python报错
np.array时报错内存溢出,检查了python安装的是64位版本,通过下面dtype=np.uint8不再报错texts_vec = (np.array(texts_vec,dtype=np.ui ...
- spring-data-mongodb中的MongoTemplate与MongoRepository
springboot添加maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <a ...
- MVC Views文件夹下js无法访问问题解决方案
出现这个问题是因为webconfig做的限制,可修改相应Views下的webconfig文件来解决. <system.webServer> <handlers> <rem ...
- NSRunLoop 在mac command line tool上的部分运用
首先RunLoop相关博客参考这篇https://blog.csdn.net/lengshengren/article/details/12905627. 最近开发了一个mac上的命令行工具,我在主线 ...
- Asp.net Web Api开发(第四篇)Help Page配置和扩展
https://blog.csdn.net/sqqyq/article/details/52708613