[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5HxSK6LS-1620177370066)(https://ducafecat.tech/2021/05/05/translation/story-view-in-flutter/2021-05-05-08-51-54.png)]

原文

https://medium.com/flutterdevs/story-view-in-flutter-7bb4ae98b119

前言

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xeFZ4A8h-1620177370068)(https://ducafecat.tech/2021/05/05/translation/story-view-in-flutter/2021-05-05-08-29-22.png)]

在当前的快速市场中,一些社交渠道已经全面爆发,成为各个年龄段聚会的热门话题。漫步在数字环境中,你会注意到新的网络媒体应用程序,比如 Instagram,在过去的一年里热得像火一样。

当你听到“基于网络的媒体应用”这个词时,可能会出现 Facebook、 Instagram、 Twitter 或 Linkedin 等应用程序。然而,你有没有考虑过如何在 Instagram 这样的在线媒体应用程序上显示一个故事?在线媒体应用程序是一个开放的集会,您可以通过一个简单的用户界面与来自世界各地的个人进行联系。

在这个博客中,我们将探 Story View In Flutter 。我们将实现一个故事视图演示程序,以及如何在您的颤动应用程序中使用故事视图包创建类似 WhatsApp 的故事。

类库

  • https://pub.dev/packages/story_view/install

本文源码

https://github.com/flutter-devs/flutter_story_view_demo

正文

Flutter Story View

Story View Flutter 组件工具对 Flutter 开发者很有帮助,通过使用这个类库,你可以显示社交媒体故事页面非常像 WhatsApp 状态故事或 Instagram 状态故事视图。同样可以像 Google 新闻应用程序一样使用内联/内部 ListView 或者 Column。伴随着手势暂停,向前,并进入后面的页面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oumDaW8F-1620177370069)(https://ducafecat.tech/2021/05/05/translation/story-view-in-flutter/2021-05-05-08-34-07.png)]

这个演示视频显示了如何创建一个 Flutter 的故事视图。它展示了如何在您的 Flutter 应用程序中使用故事视图包来工作。它可以像文本、图片、视频等一样显示你的故事。此外,用户将转发,先前,和手势暂停的情景。它会显示在你的设备上。

Features 功能

Story View 的一些特性如下:

  • 简单的文本状态故事
  • 图像、 GIF 图像故事和视频故事(启用缓存)
  • 为上一个、下一个和暂停故事做手势
  • 每个故事项的标题
  • 在每个故事视图的顶部有一个动画的进度指示器

Properties 属性

Story View 的一些属性是:

  • controller: 此属性用于控制 Story 的回放
  • onComplete: 此属性用于在显示 Story 的整个周期时进行回调。每当故事完成时,当 repeat 设置为 true 时,就会调用这个函数
  • storyItems: 此属性不为空,不显示页
  • onVerticalSwipeComplete: 此属性用于检测到垂直滑动手势时的回调。如果您不想收听这样的事件,请不要提供它
  • onStoryShow: 此属性用于当前显示故事时的回调
  • progressPosition: 此属性用于应放置进度指示符的位置

集成步骤

  • 第一步: 添加依赖项

将依赖项添加到 pubspec ー yaml 文件。

dependencies:flutter:sdk: flutterstory_view: ^0.12.3
  • 第二步: 导入
import 'package:story_view/story_view.dart';
  • 第三步: 拉取包
> flutter packages get

代码实现

你需要分别在你的代码中实现它:

在 lib 文件夹中创建一个名为 status_screen.dart 的新 dart 文件。

在这个屏幕上,我们将创建一个类似 WhatsApp 的用户界面。我们将添加一个容器小部件。在内部,我们将向 ListTile 添加网络图像、文本和 onTap 函数自动换行。在这个函数中,我们将导航到 StoryPageView() 类。

Container(height: 80,padding: const EdgeInsets.all(8.0),color: textfieldColor,child: ListView(children: <Widget>[ListTile(leading: CircleAvatar(radius: 30,backgroundImage: NetworkImage("https://images.unsplash.com/photo-1581803118522-7b72a50f7e9f?ixid=MnwxMjA3fDB8MHxzZWFyY2h8MXx8bWFufGVufDB8fDB8fA%3D%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60"),),title: Text("Logan Veawer",style: TextStyle(fontWeight: FontWeight.bold,color: white ),),subtitle: Text("Today, 20:16 PM",style: TextStyle(color:white.withOpacity(0.5)),),onTap: () => Navigator.push(context,MaterialPageRoute(builder: (context) => StoryPageView())),),],),
),

当用户按下容器时,就会显示一个故事页面。我们将深入讨论下面的代码。当我们运行应用程序时,我们应该得到屏幕的输出,就像下面的屏幕截图一样。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RfYqdp66-1620177370070)(https://ducafecat.tech/2021/05/05/translation/story-view-in-flutter/2021-05-05-08-43-31.png)]

在 lib 文件夹中创建一个名为 story_page_view.dart 的新 dart 文件。

首先,我们将创建一个与 StoryController() 相等的 final_controller。

final _controller = StoryController();

我们将创建一个 storyItems 列表。首先,我们将添加 StoryItem.text 意味着只添加不同背景颜色的简单文本状态。其次,我们将添加 StoryItem.pageImage 的意思是用控制器添加图像的 URL 来控制故事。最后,我们将使用控制器和图像匹配添加 gif 视频的 URL。

final List<StoryItem> storyItems = [StoryItem.text(title: '''“When you talk, you are only repeating something you know.But if you listen, you may learn something new.”– Dalai Lama''',backgroundColor: Colors.blueGrey),StoryItem.pageImage(url:"https://images.unsplash.com/photo-1553531384-cc64ac80f931?ixid=MnwxMjA3fDF8MHxzZWFyY2h8MXx8bW91bnRhaW58ZW58MHx8MHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60",controller: controller),StoryItem.pageImage(url:"https://wp-modula.com/wp-content/uploads/2018/12/gifgif.gif",controller: controller,imageFit: BoxFit.contain),
];

我们将返回一个 Material() 方法。在这个方法中,我们将添加 StoryView()。在内部,我们将添加一个 storyItems、 controller、 inline means 列表,如果您希望将故事显示为整个页面,则将其设置为 false 。但是,如果您要将它作为页面的一部分(如 ListView 或 Column)显示,那么将其设置为 true。我们会添加重复意味着用户应该故事永远重复然后真实,否则,假。

return Material(child: StoryView(storyItems: storyItems,controller: controller,inline: false,repeat: true,),
);

当我们运行应用程序时,我们应该得到屏幕的输出,就像下面的屏幕截图一样。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LfGaqFgi-1620177370070)(https://ducafecat.tech/2021/05/05/translation/story-view-in-flutter/2021-05-05-08-46-23.png)]

代码文件

import 'package:flutter/material.dart';
import 'package:story_view/story_view.dart';class StoryPageView extends StatefulWidget {@override_StoryPageViewState createState() => _StoryPageViewState();
}class _StoryPageViewState extends State<StoryPageView> {final controller = StoryController();@overrideWidget build(BuildContext context) {final List<StoryItem> storyItems = [StoryItem.text(title: '''“When you talk, you are only repeating something you know.But if you listen, you may learn something new.”– Dalai Lama''',backgroundColor: Colors.blueGrey),StoryItem.pageImage(url:"https://images.unsplash.com/photo-1553531384-cc64ac80f931?ixid=MnwxMjA3fDF8MHxzZWFyY2h8MXx8bW91bnRhaW58ZW58MHx8MHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60",controller: controller),StoryItem.pageImage(url:"https://wp-modula.com/wp-content/uploads/2018/12/gifgif.gif",controller: controller,imageFit: BoxFit.contain),];return Material(child: StoryView(storyItems: storyItems,controller: controller,inline: false,repeat: true,),);}
}

总结

在本文中,我已经解释了 Flutter 的基本结构的 Story View ; 您可以根据自己的选择修改这个代码。这是一个小的介绍 Story View 的用户交互从我这边,它的工作使用 Flutter。

老铁记得 点赞、转发 ,我将更有动力呈现 Flutter 好文~~~~


© 猫哥

https://ducafecat.tech/

https://github.com/ducafecat

往期

开源

GetX Quick Start

https://github.com/ducafecat/getx_quick_start

新闻客户端

https://github.com/ducafecat/flutter_learn_news

strapi 手册译文

https://getstrapi.cn

微信讨论群 ducafecat

系列集合

译文

https://ducafecat.tech/categories/%E8%AF%91%E6%96%87/

Dart 编程语言基础

https://space.bilibili.com/404904528/channel/detail?cid=111585

Flutter 零基础入门

https://space.bilibili.com/404904528/channel/detail?cid=123470

Flutter 实战从零开始 新闻客户端

https://space.bilibili.com/404904528/channel/detail?cid=106755

Flutter 组件开发

https://space.bilibili.com/404904528/channel/detail?cid=144262

Flutter Bloc

https://space.bilibili.com/404904528/channel/detail?cid=177519

Flutter Getx4

https://space.bilibili.com/404904528/channel/detail?cid=177514

Docker Yapi

https://space.bilibili.com/404904528/channel/detail?cid=130578

Flutter 添加APP启动 Story View相关推荐

  1. flutter 桌面app启动图标右上角红点实现(消息通知)

    背景   在进行app开发的过程中,我们往往需要实现类似于微信图标右上角的消息提醒红点功能.类似下图:   在传统的App开发流程中,这种问题都有现成的解决方案,但是在flutter中如何实现类似效果 ...

  2. Android App开发——添加APP启动界面

    1.在创建的项目里面添加一个Empty Activit,我这里命名为BootScreen. 2.把启动时要显示的图像拖到res的mipmap目录下. 3.在BootScreen.java里面添加代码 ...

  3. android 启动白屏_从细节入手改善用户体验,Flutter跨平台App开发中设置Android和iOS的启动页

    前言 flutter开发App方便快捷,就是冷启动的时候要加载dart引擎有短暂的白屏,严重影响用户体验,这个时候我们就需要设置一个启动图片,想国内大部分App那样(例如微信那个地球),启动App的时 ...

  4. 浅识Flutter Android studio 设置APP启动页

    Flutter Android studio 设置APP名启动页 Android设置APP启动页 ios设置APP启动页 APP的应用一打开,启动应用程序后,进入主功能界面前会有一张图片或一段动画效果 ...

  5. 解决 APP启动白屏黑屏问题

    闪屏页简介 闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟.其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动. 为什么我的 APP 启动 ...

  6. app启动页数秒加载 代码_iOS 底层探索 - 应用加载

    一.前导知识 以下参考自 WWDC 2016 Optimizing App Startup Time : 1.1 Mach-O Mach-O is a bunch of file types for ...

  7. iOS App 启动性能优化

    为什么80%的码农都做不了架构师?>>>    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq. ...

  8. 如何做到像百度云或者网易公开课一样动态更换APP启动图

    http://www.code4app.com/forum.php?mod=viewthread&tid=7632&extra=page%3D2%26filter%3Dsortid%2 ...

  9. iOS APP启动函数调用顺序~详解

    //联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 一.OC调用 C++ 会为静态创建的对象生成初始化器,与静态语言不同,OC基于Runtime机制可以用类的名字来实例化一个类的对象. ...

最新文章

  1. QTP的那些事--学习QTP必备的网站整理
  2. 阿里面试题:使用dubbo过程中遇到过哪些坑?
  3. 常用命令之------ln
  4. Hive 实战(1)--hive数据导入/导出基础
  5. STM32工作笔记0060---窗口看门狗实验
  6. ORACLE安装之环境搭建
  7. 软件工程毕设(二)·任务书
  8. VMware用rz传输文件
  9. 免sdk实现微信/支付宝转账打赏功能
  10. newifi mini php,NewFi(newifi mini华硕固件)
  11. 题解 - [POI2008]KUP-Plot purchase
  12. 真无线蓝牙耳机排名前十的品牌,公认佩戴舒适性好的蓝牙耳机分享
  13. XDRender_LightModeFeature_CauseLight 焦散1-DropRain
  14. 为何国外的人都爱用电子邮箱?注册电子邮箱有哪些好处呢?
  15. CMP FLASH影音播放器插件
  16. 龙格现象 图像对比及Python代码实现
  17. 全景软件:探索数据基因,提升企业数据效能
  18. 5g无线图传信号测试软件,5G时代,移动无线图传网络构架和无线图传传输技术...
  19. Android实现异步加载图片 ListView
  20. STM32F030 多通道ADC DMA采集

热门文章

  1. 微信小程序基础入门(一):小程序界面介绍创造自己的第一个小程序
  2. 淘宝网发展史:揭开神秘组织的技术内幕
  3. 详细对比DRAM、Flash和DDR技术 2020-11-19
  4. 第二章:《RDD编程实例之 实验报告》
  5. 搭建webgis开发环境
  6. docsify-写一个自己的网站
  7. HTTP返回结果状态码小结
  8. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】
  9. 手机app定制开发流程图
  10. 组蛋白ChIP-seq研究思路及应用案例分享