Flutter 1.0 is out!
Tuesday, December 4, 2018
Banner是手机应用最常见的需求之一,https://pub.dartlang.org/flutter中搜索Banner找到两个开源库,
引入项目后,分别存在一些问题,其中banner库,没有提供页码指示器。banner_view在手动快速滑动的过程中,会导致bug。
因此决定结合两个项目的优点进行改进,实现效果如下。
主要的布局是由一个Stack包裹着banner内容视图和Indicator指示器视图
其中指示器视图直接使用的banner_view中的代码。banner内容视图部分,使用的是PageView,pageView有个地方比较坑,pageView需要通过PageController控制页面的跳转,但是通过PageController拿到的当前page页码是double类型,并且会丢失精度,需要进行四舍五入,转换成int类型之后,再作为当前页码使用。
源码:
import 'package:flutter/material.dart';
//Created by yangxiaowei at 2018/06/06
//indicator view of banner
class IndicatorWidget extends StatelessWidget {
final Widget indicatorNormal;
final Widget indicatorSelected;
final double indicatorMargin;
final int size;