




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第AndroidFlutter实现视频上滑翻页效果的示例代码目录前言PageView组件介绍使用示例PageController应用
前言
我们在短视频应用中经常会看到不停上滑浏览下一条视频的沉浸式交互效果,这种交互能够让用户不停地翻页,直到找到喜欢的视频内容,从而营造一种不断搜寻目标的感觉,让用户欲罢不能。这种交互形式在Flutter中可以轻松使用PageView组件实现。
PageView组件介绍
PageView组件专门设计用来实现翻页效果,类定义如下:
PageView({
Keykey,
this.scrollDirection=Axis.horizontal,
this.reverse=false,
PageControllercontroller,
this.physics,
this.pageSnapping=true,
this.onPageChanged,
ListWidgetchildren=constWidget[],
this.dragStartBehavior=DragStartBehavior.start,
this.allowImplicitScrolling=false,
this.restorationId,
this.clipBehavior=Clip.hardEdge,
this.scrollBehavior,
this.padEnds=true,
})
其中常用的属性说明如下:
scrollDirection:滑动方向,可以支持纵向翻页或横向翻页,默认是横向翻页。controller:翻页控制器,可以通过控制器来制定初始页,以及跳转到具体的页面。onPageChanged:翻页后的回调函数,会告知翻页后的页码。reverse:是否反向翻页,默认是false。如果横向滑动翻页的话,如果开启反向翻页,则是从右到左翻页。如果是纵向翻页的话,就是从顶部到底部翻页。children:在翻页中的组件列表,每一页都以自定义组件内容,因此这个组件也可以用于做引导页,或是类似滑动查看详情的效果。
使用示例
PageView使用起来非常简单,我们先定义一个PageView翻页的内容组件,简单地将接收的图片文件满屏显示。代码如下,实际应用的时候可以根据需要换成其他自定义组件。
classImagePageViewextendsStatelessWidget{
finalStringimageName;
constImagePageView({Keykey,requiredthis.imageName}):super(key:key);
@override
Widgetbuild(BuildContextcontext){
returnScaffold(
body:Image.asset(
imageName,
fit:BoxFit.fitHeight,
width:MediaQuery.of(context).size.width,
height:MediaQuery.of(context).size.height,
}
之后是定义一个PageViewDemo来应用PageView翻页应用示例,代码如下:
classPageViewDemoextendsStatefulWidget{
constPageViewDemo({Keykey}):super(key:key);
@override
StatePageViewDemocreateState()=_PageViewDemoState();
class_PageViewDemoStateextendsStatePageViewDemo{
latePageController_pageController;
int_pageIndex=1;
@override
voidinitState(){
_pageController=PageController(
initialPage:_pageIndex,
viewportFraction:1.0,
super.initState();
@override
Widgetbuild(BuildContextcontext){
returnScaffold(
backgroundColor:Colors.black,
body:PageView(
scrollDirection:Axis.vertical,
onPageChanged:(index){
_pageIndex=index;
controller:_pageController,
allowImplicitScrolling:false,
padEnds:true,
reverse:false,
children:const[
ImagePageView(imageName:'images/earth.jpeg'),
ImagePageView(imageName:'images/island-coder.png'),
ImagePageView(imageName:'images/mb.jpeg'),
}
这个示例里,我们的pageController只是演示了设置初始页码。我们看到的viewportFraction可以理解为一页内容占据屏幕的比例,比如我们可以设置该数值为1/3,支持一个屏幕分段显示3个页面内容。
PageController应用
PageController可以控制滑动到指定位置,比如我们可以调用animateToPage方法实现一个快速滑动到顶部的悬浮按钮。
floatingActionButton:FloatingActionButton(
onPressed:(){
_pageController.animateToPage(
duration:constDuration(
milliseconds:1000,
curve:Curves.easeOut,
backgroundColor:Colors.black.withAlpha(180),
child:constIcon(
Icons.arrow_upward,
color:Colors.white,
),
实现效果如下。
Page
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一周的小结15篇
- 抗震加固改造项目实施方案
- 住校生安全保证书模板
- 长春早期教育职业学院《体育教学设计与技能训练》2023-2024学年第二学期期末试卷
- 北京工商大学《MySQL数据库》2023-2024学年第二学期期末试卷
- 广东生态工程职业学院《合唱(二)》2023-2024学年第二学期期末试卷
- 重庆三峡医药高等专科学校《专业制图综合》2023-2024学年第二学期期末试卷
- 哈尔滨应用职业技术学院《形式与政策教育》2023-2024学年第二学期期末试卷
- 濮阳科技职业学院《现代工程图学》2023-2024学年第二学期期末试卷
- 四川文化艺术学院《理财规划实训》2023-2024学年第二学期期末试卷
- 1.技术交流PPT-输电线路分布式故障诊断装置
- 医院护理培训课件:《跌倒坠床PDCA分析》
- 七年级历史下册图片题剖析
- 中医内科方歌大全
- 管线打开作业安全管理标准
- 沟通与谈判第讲非语言沟通
- Unit+6+Section+A+3a-3c 人教版八年级英语下册
- 肾移植术后十宜十不宜专家讲座
- 上海交通大学模板红色版本
- 2022年高考政治真题试卷(湖南卷)及解析答案
- 农村常见犯罪与刑事处罚课件
评论
0/150
提交评论