flutter PageView上下滑动切换视图

更多文章请查看 lutter从入门 到精通

上下滑动切换的 pageview

import 'dart:math';

import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_x/base/base_appbar_page.dart';
import 'package:flutter_x/base/base_page.dart';
import 'package:flutter_x/common/common_colors.dart';
import 'package:flutter_x/utils/route_utils.dart';
import 'package:webview_flutter/webview_flutter.dart';

class UpPageViewPage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new UpPageViewPageState();
  }
}

class UpPageViewPageState extends BaseAppBarPageState<UpPageViewPage> {
  @override
  String buildInitState() {
    buildBackBar("pageView", backIcon: Icons.arrow_back_ios);
    return null;
  }

  final _controller = new PageController();
  @override
  Widget buildWidget(BuildContext context) {
    // TODO: implement buildWidget
    return Container(
      child: PageView(
        children: buildPageItemView(),
        //设置滑动方向
        scrollDirection: Axis.vertical,
      ),
    );
  }

  buildPageItemView() {
    List<Widget> _pages =new List();
    for(int i=0;i<100;i++){
     Widget item = new ConstrainedBox(
        constraints: const BoxConstraints.expand(),
        child: new CachedNetworkImage(
          width: double.infinity,
          height: double.infinity,
          fit: BoxFit.fill,
          imageUrl:
          "http://b-ssl.duitang.com/uploads/item/201311/02/20131102150044_YGB5u.jpeg",
          placeholder: (context, url) => new SizedBox(
            width: 24.0,
            height: 24.0,
            child: new CircularProgressIndicator(
              strokeWidth: 2.0,
            ),
          ),
          errorWidget: (context, url, error) => new Icon(Icons.error),
        ),
      );
     _pages.add(item);
    }
    return _pages;
  }
}

复制代码

转载于:https://juejin.im/post/5d1e84bfe51d455ca04362b8

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值