Flutter 做一个可以左右滑动的轮播图(有提示条)

轮播图是自媒体组件的一种,支持自定义轮播图片、轮播动画效果等。它可以在一个可视模块或者窗口里,通过鼠标点击或手指滑动展示多张图片。

今天我们使用 Flutter 的 PageView 和 自定义组件 来实现一个有进度条的轮播图。



1.PageView 是一个可以逐页滚动的列表,类似于 ListView 组件。我们先通过这张图片来简单认识它。


PageView Class



详细学习请点击 PageView 。


2.查看 PageView 源代码,了解它的使用情景和应用方式。

PageView.builder({

Key? key,

this.scrollDirection = Axis.horizontal,

this.reverse = false,

PageController? controller,

this.physics,

this.pageSnapping = true,

this.onPageChanged,

required IndexedWidgetBuilder itemBuilder,

int? itemCount,

this.dragStartBehavior = DragStartBehavior.start,

this.allowImplicitScrolling = false,

this.restorationId,

this.clipBehavior = Clip.hardEdge,

this.scrollBehavior,

})


PageView 属性


3.接下来开始配置开发环境(前面的项目已经配置好了)。

4.在 IDE 中新建一个Flutter项目,命名为SliderByPageView_demo。

        打开IDE,选中【文件】->【新建】->【项目】

        选中 New Flutter Project,点击【next】

        选择 Flutter,验证 Flutter SDK 的路径。完成后选择 Next

        输入项目名称SliderByPageView_demo,设定工作目录。

        选择 Application 的项目类型,完成后选择 Next

        点击 完成即可

5.在项目文件中的【lib 文件夹】编写代码。

主界面代码:

Scaffold(

appBar:AppBar(

title:Text('轮播图'),

      centerTitle:true,

    ),

  body:Stack(

children: [

//底层显示的PageView

      BuildPageView(),

      //表层的圆点指示器

      BuildCircleIndicator(),

    ],

  ),

);


PageView 显示:

PageViewBuildPageView() {

return PageView.builder(

//设置滑动模式

    physics:new AlwaysScrollableScrollPhysics(),

    //控制器

    controller:_pageController2,

    //构建每一屏的视图 UI 显示的效果

    itemBuilder: (BuildContext context, int index) {

return buildItemWidget(index);

    },

    //PageView item 个数

    itemCount:spll.length,

  );

}


圆点进度器:

Positioned BuildCircleIndicator() {

  return Positioned(

    //底部对齐

    bottom: 0.0, left: 0.0,right: 0.0,

    child: new Container(

      color: Colors.yellow,

      padding: const EdgeInsets.all(20.0),

      child: new Center(

        //自定义的圆点切换指示器

        child: buildCircleIndicator(),

      ),

    ),

  );

}


PageView 显示构建:

return new ConstrainedBox(

constraints:const BoxConstraints.expand(),

    ///网络图片

    child:Image.network(

///图片地址

      spll[index],

    ),

  );

}



6.检查代码中是否存在语法错误,如果有则根据提示修改,没有就直接运行。

7.配置主运行文件 main.dart 并运行程序,查看运行效果。

8.我们可以选择两种方式进行运行,ide加载出来之后,就可以查看运行效果。


web 运行结果


手机端运行结果

Flutter最大的优势就是多端运行和应用热加载,我们可以利用一套 Dart 代码在不同的设备或平台上运行;热加载其实就是代码可以随时进行更新,在无需重新启动应用程序的情况下快速、轻松地测试、构建用户界面、添加功能以及修复错误。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容