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 ...
随机推荐
- 嵌入式linux内存越界定位和解决 (转)
https://blog.csdn.net/meejoy/article/details/41729585 https://blog.csdn.net/killmice/article/details ...
- yii2 gridview checkbox
给checkbox(在GridView里的)添加一个value 控制器:$dataProvidermStu->key = "student_no"; view:[ 'clas ...
- LeetCode 122 Best Time to Buy and Sell Stock II 解题报告
题目要求 Say you have an array for which the ith element is the price of a given stock on day i. Design ...
- python 包下载地址
https://www.lfd.uci.edu/~gohlke/pythonlibs/
- oracle多行合并一行
以上图为例 执行SQL语句: select d.group_id,to_char(wm_concat(d.tag)) from Imglib_Group_Tag d where d.group_id= ...
- OC 应用跳转QQ私聊界面或者申请加群
申请加群 NSString *qq_number = QQ; NSString* urlStr = [NSString stringWithFormat:@"mqqapi://card/sh ...
- zabbix实现自定义监控
实现自定义监控项实例 .创建主机组 .创建主机 .创建监控项 .到需要监控的主机的agent中添加自定义的监控项目 cd /etc/zabbix/zabbix_agentd.d vi userpara ...
- 【LeetCode每天一题】Plus One(加一)
Given a non-empty array of digits representing a non-negative integer, plus one to the integer.The d ...
- hybrid简单了解
技术点总有它的来由. 文章概要: 1.hybrid 基本概念 2.前端和客户端的交互 3.前端和客户端的交互实现 4.前端交互实现关注点 5.小结 1.hybrid 基本概念 ⑴.什么是hybrid? ...
- matlab多个曲面如何画在一个坐标系中的疑问
matlab多个曲面如何画在一个坐标系中的疑问 [复制链接] [X,Y]=meshgrid(-3:0.1:3);Z=X.^2+Y.^2;mesh(X,Y,-Z)hold onmesh(X,Y,Z)