一、老套路,先看样式

左边图是我业务中的样式,右边图是下方源码展示样式(复制可直接运行,无额外组件引入)

二、讲解

1.结构拆分

首先我们来拆分下结构,无非就两个主要部分,一个是左边竖线和圆形图,一个是右边的内容

分析下大概用到以下组件:

Stack :重叠组件

VerticalDivider:竖线

BoxDecoration:圆圈

Column,Row,Text,Padding等

2.先实现下整体的样式布局

Widget getItem() {

return Container(

height: 70,

child: Row(

children: [

Container(

height: 70,

width: 20,

child: leftItem(),

),

Padding(

padding: const EdgeInsets.only(left: 20),

child: rightItem(),

),

],

),

);

}

说明:根部的container设置高度,是因为竖线的包裹组件需要一个指定高度,所以我们列表的每个list需要设置高度

设置一个Row,左边是图形,右边是内容

3.左边的stack图形样式

return Stack(

children: [

Padding(

padding: EdgeInsets.only(left: 1),

child: VerticalDivider(

thickness: 2,

),

),

Padding(

padding: EdgeInsets.only(left: 0, top: 20),

child: Container(

width: 20,

height: 20,

decoration: BoxDecoration(

shape: BoxShape.circle,

color: Colors.orange,

),

),

),

],

);

通过VerticalDivider的属性设置一个属性,宽度设置为2,当前还有其他的一些属性,可以翻看文档

需要注意的是:

【1】stack的父组件宽度设置为20,高度为70,那么竖线出来的效果高度也为70,横向位置在中间

【2】为了竖线在圆圈的中心穿过,圆圈宽高需要都设置为20,距离顶部在25,圆圈会位于竖线中心位置

这些数字可以改,但是要保持之前关系,可以进行调试查看效果

4.右边的内容相对比较简单

主要是一些column和row组件来设置布局了

里面涉及的一些组件的含义和属性,可以翻看文档熟悉

三、源码(可直接运行调试)

import 'package:flutter/material.dart';

class MyTest extends StatefulWidget {

@override

_MyTestState createState() => _MyTestState();

}

class _MyTestState extends State {

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

leading: new IconButton(

icon: new Icon(Icons.arrow_back),

),

centerTitle: true,

title: Text(

'我的时光轴',

),

actions: [

IconButton(

icon: Icon(Icons.edit),

),

],

),

body: Padding(

padding: const EdgeInsets.all(10.0),

child: ListView(

children: [

getItem(),

getItem(),

getItem(),

],

),

));

}

Widget getItem() {

return Container(

height: 70,

child: Row(

children: [

Container(

height: 70,

width: 20,

child: leftItem(),

),

Padding(

padding: const EdgeInsets.only(left: 20),

child: rightItem(),

),

],

),

);

}

Widget leftItem() {

return Stack(

children: [

Padding(

padding: EdgeInsets.only(left: 1),

child: VerticalDivider(

thickness: 2,

),

),

Padding(

padding: EdgeInsets.only(left: 0, top: 25),

child: Container(

width: 20,

height: 20,

decoration: BoxDecoration(

shape: BoxShape.circle,

color: Colors.orange,

),

),

),

],

);

}

Widget rightItem() {

return Column(

crossAxisAlignment: CrossAxisAlignment.start,

children: [

Container(

child: Row(

children: [

Text('我是一个标题'),

Padding(

padding: const EdgeInsets.only(left: 20),

child: Text(

'2020-08-07 18:00:00',

style: TextStyle(color: Colors.black38),

),

),

],

),

),

Text(

'这里放一些描述信息',

style: TextStyle(color: Colors.black54, fontSize: 12),

),

Container(

width: 300,

child: Divider(

height: 24,

)),

],

);

}

}

持续更新中......

时光轴php源码,用flutter很简单的实现一个时光轴样式【flutter20个实例之五】相关推荐

  1. android4.0.3源码之硬件gps简单移植

    [转]我和菜鸟一起学android4.0.3源码之硬件gps简单移植 2013-7-5阅读94 评论0 关于android定位方式 android 定位一般有四种方法,这四种方式分别是GPS定位.WI ...

  2. v57.02 鸿蒙内核源码分析(编译过程) | 简单案例说透中间过程 | 百篇博客分析HarmonyOS源码

    子畏于匡,颜渊后.子曰:"吾以女为死矣."曰:"子在,回何敢死?" <论语>:先进篇 百篇博客系列篇.本篇为: v57.xx 鸿蒙内核源码分析(编译 ...

  3. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个扁平化风格css螃蟹图形~~适合初学者~超简单~ |前端开发|IT软件

    b站视频演示效果: [web前端特效源码]使用HTML5+CSS3+JavaScript制作一个扁平化风格css螃蟹图形~~适合初学者~超简单~ |前端开发|IT软件 效果图: 完整代码: <! ...

  4. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个电风扇动画效果~适合初学者~超简单~ |前端开发|IT软件

    b站视频演示效果: [web前端特效源码]使用HTML5+CSS3+JavaScript制作一个电风扇动画效果~适合初学者~超简单~ |前端开发|IT软件 效果图: 完整代码: <!DOCTYP ...

  5. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个可拖动的拼图游戏动画效果~适合初学者~超简单~ |it前端开发

    b站视频演示效果: [web前端特效源码]使用HTML5+CSS3+JavaScript制作一个可拖动的拼图游戏动画效果~适合初学者~超简单~ |前端开发|IT软件 效果图: 完整代码: <!D ...

  6. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个影子~~适合初学者~超简单~ |前端开发|IT软件

    b站视频演示效果: [web前端特效源码]使用HTML5+CSS3+JavaScript制作一个影子特效~~适合初学者~超简单~ |前端开发|IT软件 效果图: 完整代码: <!DOCTYPE ...

  7. ictclas4j java_ictclas4j 中科院中文分词系统完成的java源码,能很好的实现 的 ,为文本挖掘提供基础。 Develop 238万源代码下载- www.pudn.com...

    文件名称: ictclas4j下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 6617 KB 上传时间: 2013-12-06 下载次数: 4 提 供 者: 黄倩 ...

  8. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个果冻导航标签栏图标按钮效果~~适合初学者~超简单~ |前端开发|IT软件

    b站视频演示效果: [web前端特效源码]使用HTML5+CSS3+JavaScript制作一个果冻导航标签栏图标按钮效果~~适合初学者~超简单~ |前端开发|IT软件 效果图: 完整代码: < ...

  9. 抖音云蹦迪源码 2022年很火的直播打赏类项目

    原来,一个程序员偶然发现,很多年轻人都不想去夜总会,但又不敢去.因此,他突发奇想,花了一周时间输入代码,制作了一个云迪斯科,并现场展示. 这个就是大家近期讨论比较火热的抖音云蹦迪 我们先看一下这样的一 ...

最新文章

  1. python做直方图-python OpenCV学习笔记实现二维直方图
  2. OO Design之SOLID原则
  3. Large-Scale Named Entity Disambiguation Based on Wikipedia Data
  4. UITabBarController详解
  5. sql语句 取搜索列表的前几条
  6. 哇,原来CPDA数据分析师证书的好处这么多
  7. 微信红包封面催生暴利灰产:有人月入三十万
  8. 实盘中在vnpy多策略多交易对交易
  9. 【转载】django-数据库[ 配置 ]
  10. 识读第三角视图(机械识图)
  11. WebSocket实现在线人数统计
  12. 如何把bibtex的文献导入到endnote里面
  13. 列举3个短视频类的产品,并分析其目标用户、主打需求、竞争优势等
  14. idea打包出错时出现 Cleaning up unclosed ZipFile for archive?
  15. SD卡/SD卡卡槽/TF卡/TF卡卡槽的引脚定义
  16. java json日期_JSON日期到Java日期?
  17. 桌面运维中持续服务改进需要怎么进行?
  18. WebService CXF --- 传输文件MTOM
  19. 使用WebRTC搭建前端视频聊天室——信令篇
  20. 听见浪潮存储花开的声音

热门文章

  1. git branch diverged
  2. 牛客网 2018校招真题 美团点评 重要节点
  3. R 数据分析学习笔记
  4. c语言float的使用,C语言double和float实例分析用法
  5. [GKCTF 2021]babycat-revenge
  6. Java系列教程day05——分支语句
  7. 解决babun中文乱码的问题
  8. babun替换cygwin内核(最新的2.6.0或64位cygwin内核)
  9. Odoo二次开发------Odoo常用字段类型
  10. python colorbar函数_Python Matplotlib.pyplot.colorbar()用法及代码示例