定义弹幕样式

barrage_view_util.dart

class BarrageViewUtil {/// 定义弹幕的样式static barrageView(BarrageModel model) {switch (model.type) {case 1:return _barrageType1(model);break;}return Text(model.content, style: TextStyle(color: Colors.white));}static _barrageType1(BarrageModel model) {return Center(child: Container(child: Text(model.content,style: TextStyle(color: Colors.deepOrangeAccent)),decoration: BoxDecoration(border: Border.all(color: Colors.white),borderRadius: BorderRadius.circular(15)),),);}
}

添加弹幕

hi_barrage.dart

将发送的消息封装成弹幕Widget

 void addBarrage(BarrageModel temp) {// 默认弹幕所占的高度double perRowHeight = 30;var line = _barrageIndex % widget.lineCount;_barrageIndex++;var top = line * perRowHeight + widget.top;// 生成弹幕idString id = '${_random.nextInt(10000)}:${temp.content}';// 封装弹幕Widgetvar item = BarrageItem(id: id,top: top,child: BarrageViewUtil.barrageView(temp),onComplete: _onComplete(id));// 添加弹幕_barrageItemList.add(item);// 刷新界面setState(() {});}/// 弹幕播放完毕,移除对应id的弹幕_onComplete(String id) {print('Done:$id');_barrageItemList.removeWhere((element) => element.id == id);}

显示弹幕

barrage_item.dart

class BarrageItem extends StatelessWidget {final String id;final double top;final Widget child;final ValueChanged onComplete;final Duration duration;const BarrageItem({Key key,this.id,this.top,this.child,this.onComplete,this.duration = const Duration(milliseconds: 9000)}): super(key: key);@overrideWidget build(BuildContext context) {return Padding(padding: EdgeInsets.only(top: top),child: Container(child: child,),);}
}

Flutter 自定义弹幕展示样式相关推荐

  1. Vue - 超详细 “横向滚动“ 弹幕效果功能组件源码,类似视频与直播间的发言弹幕 (支持自定义弹幕样式 / 开启暂停弹幕播放 / 清空弹幕 / 修改弹幕移动速度 / 发送插入自己的弹幕并高亮显示等)

    前言 网上的教程都太乱了,并且全是 BUG 根本无法改造到自己的项目中去. 本文实现了 在 Vue / Nuxt 项目中,实现弹幕飘过的效果,支持网络请求数据 / 自定义弹幕样式 / 开启暂停弹幕播放 ...

  2. flutter自定义分页器

    使用flutter自定义一个分页器 最近在写flutter项目,项目刚好需要一个分页器,对数据进行分页处理,一开始想要在网上找有没有已经写好的插件,搜寻一会后还是想着自己写一个. 先看看效果图 思路 ...

  3. 【Flutter】Flutter 自定义字体 ( 下载 TTF 字体 | pubspec.yaml 配置字体资源 | 同步资源 | 全局应用字体 | 局部应用字体 )

    文章目录 一.Flutter 自定义字体 1.ttf 字体文件 2.ttf 字体资源配置 3.获取字体 4.全局使用字体 5.局部使用字体 二.完整代码示例 三.相关资源 一.Flutter 自定义字 ...

  4. uniapp 实现微信小程序全局分享及自定义分享按钮样式

    uniapp 实现微信小程序的全局 转发给好友/分享到朋友圈 的功能.主要使用 Vue.js 的 全局混入 概念. 下面直接上 实现步骤和代码: 创建全局分享内容文件 1.创建一个全局分享的 js 文 ...

  5. Android基于高德SDK的开发——自定义地图主题样式(悬浮按钮+底部弹窗)

    日常的地图使用中,平台一般只会给我们提供地图的标准样式,造成了一定程度上的审美疲劳,那么如何实现地图的自定义样式呢?本文使用Android Studio 4.1,给开发者提供了一个基于高德地图SDK进 ...

  6. Flutter 自定义动画 — 数字递增动画和文字逐行逐字出现或消失动画

    系列文章 Flutter 旋转动画 - RotationTransition Flutter 平移动画 - 4种实现方式 Flutter 淡入淡出与逐渐出现动画 Flutter 尺寸缩放.形状.颜色. ...

  7. 百度地图 Api v3.0 自定义信息窗体样式

    一.效果图 二.代码 注意要先引入: <script src="http://api.map.baidu.com/api?v=3.0&ak=IN43cyju8PVLGfSNwl ...

  8. android ratingbar样式,自定义RatingBar的样式

    写星座运势,难免要写RatingBar. 用法: 1.属性 android:numStars : 星星个数 android:rating : 默认点亮的星星星星个数 android:stepSize  ...

  9. flutter 自定义日历

    在项目中需要实现一个日历展示我发布过的动态,效果如图,同时需要左右滑动翻页 尝试使用组件发现可自定义的范围比较小,且无法实现需求,看到这篇Flutter自定义日历,实现日期底部不同颜色的日历事件_ap ...

  10. 支付宝小程序 | 上传图片组件(添加默认样式以及自定义上传样式)

    使用my.uploadFile. my.chooseImage 的方式实现图片上传 注意: 使用该方式上传文件,后端也需要参照官方文档进行修改 https://opendocs.alipay.com/ ...

最新文章

  1. 第二阶段_第五小节_C#基础3
  2. 【转载】C# ??(问问,问号问号)运算符,可空值(申明加?(问号))的克星
  3. oracle最佳环境,创建最适合的Oracle运行环境
  4. .NET in Browser - Blazor
  5. RabbitMQ 普通集群配置_04
  6. P5709 【深基2.习6】Apples Prologue 苹果和虫子(python3实现)
  7. python size(0)_对x.view(x.size(0), -1)的一些理解
  8. 怎么获取服务器接口文档,服务器接口获取数据
  9. Re-Order Buffer
  10. 动态生成java类_Java 运行时动态生成class
  11. 怎么让图片一直转圈_半夜跟着导航开进山路,货车绕了3小时仍原地转圈,小两口快急哭...
  12. 考研辅导c语言程序设计真题,全国名校C语言程序设计考研真题汇编
  13. WPS Office Pro v10.8.2.6726 绿色便携专业增强版
  14. JavaScript+随机选号
  15. 快速开发平台learun7.0.3发布,看看各版本有什么更新吧
  16. javascript中的二维数组定义
  17. 如何重置网络?如何激活产品?
  18. 页面操作时显示“处理中,请稍候。。。”
  19. 推荐几款好用的UI框架 和 后台管理系统(开源免费)
  20. Cause: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, \“wname\“)\r\n\ta

热门文章

  1. mysql 本月第几周_Mysql 计算当前日期是本月第几周:一个自定义算法
  2. 2022年1月舆情信息事件分析总结报告
  3. windows下的nc下载地址
  4. 视频教程-Excel VBA网抓教程【你学得会】-Office/WPS
  5. Windows2003操作系统SQL Server 2008安装图解(详细)
  6. 快速在小程序上实现“友情链接/合作伙伴”功能
  7. 计算机网络——数据链路层
  8. 自由职业者互联网进化记
  9. 简单的JAVA小程序
  10. 使用 软件 vscode 对比文件内容的方法