flutter滚动Text文本

2023-10-29

GlobalKey _scrollTextKey = new GlobalKey();
Timer _scrollTextTimer;
ScrollController _controller;
int index=0;

@override
  void initState() {
    // TODO: implement initState
    super.initState();
    _controller = new ScrollController(initialScrollOffset: 0);
	if(!_controller.hasClients){//防止要滚动的文本控件需不显示时(如没有拿到数据)				  ScrollController没有能滚动的对象,导致_controller.animateTo()报空指针
      WidgetsBinding.instance.addPostFrameCallback((callback){
        _scrollTextTimer= Timer.periodic(new Duration(seconds: 2), (timer){
          if(_gonggaoKey.currentContext==null){
            index+=44;
          }else{
            index+=_scrollTextKey.currentContext.size.height.toInt();
            _controller.animateTo((index).toDouble(), duration: new Duration(seconds: 2), curve: Curves.easeOutSine);
            //滚动到底部从头开始
            if((index-_scrollTextKey .currentContext.size.height.toInt()).toDouble()>_controller.position.maxScrollExtent){
              _controller.jumpTo(_controller.position.minScrollExtent);
              index=0;
            }
          }


        });

      });
    }
  }
  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    _controller.dispose();
    _scrollTextTimer?.cancel();
    _scrollTextTimer = null;

  }

_scollTextView(){
		return ListView.builder(
                key:_scrollTextKey,
                scrollDirection: Axis.vertical,  // 纵向滚动
                controller: _controller,  // 滚动的controller
                itemExtent: ScreenUtil().setHeight(72),
                physics: new NeverScrollableScrollPhysics(),
                itemCount: 3,
                itemBuilder: (context, index) {
                  return Container(
                    alignment: Alignment.centerLeft,
                    child: WTextView('滚动文本',style: getTextStyle(fontSize: ScreenUtil().setSp(24)),),
                  );
                },
              )
	}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flutter滚动Text文本 的相关文章

随机推荐

  • hive小文件过多问题解决方法

    小文件产生原因 hive 中的小文件肯定是向 hive 表中导入数据时产生 所以先看下向 hive 中导入数据的几种方式 直接向表中插入数据 insert into table A values 1 zhangsan 88 2 lisi 6
  • 如此优雅,4款 Python 自动数据分析神器真香啊

    我们做数据分析 在第一次拿到数据集的时候 一般会用统计学或可视化方法来了解原始数据 比如了解列数 行数 取值分布 缺失值 列之间的相关关系等等 这个过程我们叫做 EDA Exploratory Data Analysis 探索性数据分析 用
  • 一文看懂什么是区块链分叉

    一些链上资产采用的工作量证明机制 就是让矿工互相竞争求解一个数学题 谁先解出来了 他就大喊一声 我的工作量证明成功了 你们快来看 全体矿工就都过来把那一页目抄写一份 贴在自己账本的最后面 然后又开始新的记账过程 在这个过程中 经常会出现这样
  • 通俗易懂----C语言时间日期与时间戳互相转化

    前言 如果你也对时间转化的高效代码而苦恼 不妨看看以下内容 一定会给你带来良好的体验和启迪 1 时间戳含义 1 1时间戳是衡量时间的一种标准 用来特定电子数据提供一个绑定时间戳 从而有效地证明该电子数据的产生时间及未被修改 常用于保 防伪等
  • 前端小作业~基础知识点串接

    包子们 这次网页虽然不难 但是扣细节的地方多啊 都是最近学的零零散散的知识的拼接与整合 也是尽力而为了 搞了将近四个小时
  • R语言常用快捷键1

    快捷键 1赋值符号 lt alt 2管道符 gt Ctrl Shift M 3注释 Ctrl Shift C 4默认颜色 5折叠所有代码 alt o 6展开所有代码 shift alt o 7添加代码块 Ctrl alt i 1赋值符号 l
  • [从零学习汇编语言] - 转移指令进阶

    文章目录 前言 回顾 1 转移指令原理 2 已接触过的操作符 3 寄存器回顾 通用数据处理寄存器 指针寄存器 变址寄存器 段地址寄存器 其他寄存器 一 ret及retf 1 1 ret指令 1 2 retf指令 1 3 小练习 二 Call
  • Clannad【2018四川省赛】【AC自动机 + DP】

    题目链接 第十届四川省赛C题 挺好的一道题 就是要做一个last优化 每次的last要返回到之前的有值节点 也就是单词的尾的对应节点 然后就不会超时了 呜呜呜 之前一直超时 以为是初始化的memset 问题 以前被卡过memset 然后发现
  • 【cdk的使用】C语言 一个仅用200行代码实现的logger系统 使用

    Github地址 https github com wujin1989 cdk 经常有人说 一个好的代码 不需要记录太多的log 确实 我信了 这也导致cdk也是基于这点出发的 所以cdk的logger系统很简单 仅仅200行左右代码 但是
  • [转]新一代 Linux 文件系统 btrfs 简介

    刘 明 ovis poly sina com 软件工程师 上海交通大学电子与通信工程系 2009 年 8 月 20 日 Btrfs 被称为是下一代 Linux 文件系统 近年来 ext2 3 遇到越来越多的扩展性问题 在期待 ext4 的同
  • 网编(20):UDP传输数据经常遇到的问题

    相对于TCP 协议的程序设计 UDP 协议的程序虽然程序设计的环节要少一些 但是由于UDP 协议缺少流量控制等机制 容易出现一些难以解决的问题 UDP 的报文丢失 报文乱序 connect 函数 流量控制 外出网络接口的选择等是比较容易出现
  • 简单谈谈weex、nvue和vue

    1 区别 weex we except 自己的理解 支持原生和vue并写 原生渲染 但是组件库不完善 仅支持编写app nvue嵌入了weex引擎 又有uniapp丰富的组件库 相当于dcloud写的weex升级版 在uniapp中支持使用
  • 把xml转为成javaBean javaBean转为成xml

    1 先定义javaBean package com wutka jox test import com wutka jox import java util public class TestBean implements java io
  • 【满分】【华为OD机试真题2023 JS】计算网络信号

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 计算网络信号 知识点广搜数组 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 网络信号经过传递会逐层衰减 且遇到阻隔物无法直接穿透 在此情况下需要计算某个位置的网
  • Selenium成长之路-09简单对象定位之link text方法

    有的时候 我们需要操作的元素是一个文字链接 那么我们可以通过 linktext 或 partiallinktext 进行元素 定位 今天我们先来介绍link text元素定位 百度首页上面的 新闻 hao123 地图 等就可以使用link
  • 用Go语言开发以太坊合约

    转发请注明出处 https blog csdn net ahy231 article details 114112638 序 网上关于 go 语言开发 DApp 的教程较少 因此我只能通过官方文档来系统学习 go 语言的 DApp 开发 这
  • MacOS13+系统运行Stable Diffusion出现的问题及解决方法汇总

    目录 先睹为快 开发环境 问题一 点 生成 按钮就退出程序 问题二 生成的图片是马赛克 第一步 解决环境问题 第二步 更新指定的torch版本包 步骤一 更新指定的torch包 步骤二 重新安装pytorch nightly版本的包 问题三
  • 解决虚拟机VM和WSL2切换问题

    操作环境 windows11 虚拟机 wsl2用的都是Ubuntu 18 04 问题描述 因为之前一直使用wsl2 很久没有使用VM虚拟机 今天打开的时候发现VM不能用了 于是查资料发现用VM和wsl2会冲突 解决办法 首先说一下怎么从之前
  • C和C++中字符串说明与记录

    文章目录 目的 C语言 字符基本说明 字符串声明与操作 字符串常用函数说明 属性 复制 合并 替换 查询 比较 类型检查 类型转换 C C 字符串基本说明 C string和C语言字符串转换 C string常用方法说明 属性 类型转换 修
  • flutter滚动Text文本

    GlobalKey scrollTextKey new GlobalKey Timer scrollTextTimer ScrollController controller int index 0 override void initSt