当前位置: 首页 > article >正文

PageView组件的功能和用法

文章目录

  • 1 概念介绍
  • 2 使用方法
  • 3 示例代码

我们在上一章回中介绍了如何屏蔽事件关的内容,本章回中将介绍PageView Widget.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1 概念介绍

我们在这里介绍的PageView是指左右滑动或者上下滑动显示不同的页面,Flutter把它封装成了独立的Widget。如果有看官们会Android编程的话,就会发现它的功
能和ViewPage以及ViewPage2的功能类似。本章回中将详细它的使用方法。

2 使用方法

和其它的组件一样,PageView提供了相关的属性来控制自己,我们只需要给属性赋值就可以,下面是常用的属性:

  • scrollDirection属性用来控制滑动的方向,例如Axis.horizontal表示水平滑动时切换页面;
  • children属性用来存放滑动的页面,它是一个List,可以存放多个页面;
  • onPageChanged属性是一个回调方法,当页面滑动时它就会被回调,方法中的参数是页面的索引值,索引值与children中的数量一致,不过是从0开始;

3 示例代码

return Scaffold(
  appBar: AppBar(
    title: const Text("Example of PaveView"),
    backgroundColor: Colors.purpleAccent,
  ),
  body: PageView(
    scrollDirection: Axis.horizontal,
    onPageChanged: (value){print("onPage Changed: ${value}");},
    children: [
      Container(
        alignment: Alignment.center,
        //长度和调试没有效果,会填充满整个屏幕
        width: 100,
        height: 300,
        color: Colors.lightBlue,
        child: const Text("Page 1"),
      ),
      Container(
        alignment: Alignment.center,
        color: Colors.greenAccent,
        child: const Text("Page 2"),
      ),
      Container(
        alignment: Alignment.center,
        color: Colors.brown,
        child: const Text("Page 3"),
      ),
    ],
  ),
);

上面的代码中我们给PageVeiw添加了三个页面,每个页面的背景颜色不同,而且页面中间显示页面序号。注意页面会填充满整个屏幕,即使指定长度和宽度也没有效果。
代码中onPageChanged属性对应的方法没有做太多的事情,只是把当前页面的索引值打印到日志中。我们在这里只列出了核心代码,完整的代码可以查看Github上
ex015文件中的代码。编译并且运行上面的程序就会得到一个可以滑动的页面,从左向右滑动页面时可以在三个页面之间进行切换,同时会在日志窗口中会打印出页面的
索引值。我们在这里就不演示程序运行效果了,建议大家自己动手去实践。
看官们,关于PageView Widget相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!


http://www.kler.cn/a/518316.html

相关文章:

  • 非根目录部署 nextjs 项目,资源文件 请求404 的问题
  • 豆包 MarsCode + 开源 = ?AI 助力开源社区新人成长
  • 可见光通信代码仿真
  • Java 大视界 -- Java 大数据中的隐私增强技术全景解析(64)
  • Redis实战(黑马点评)——涉及session、redis存储验证码,双拦截器处理请求
  • MySQL入门(数据库、数据表、数据、字段的操作以及查询相关sql语法)
  • Facebook广告点击率CTR太低 如何优化
  • shell编程-awk使用系统学习
  • 如何部署 Flask 应用程序到生产环境?
  • 人工智能的未来:AGI、ACI与ASI的探索
  • Kimi k1.5:基于大语言模型的多模态强化学习训练技术报告
  • Base64编码解密:解码下载邀请
  • 使用 Tauri 开发桌面应用程序:新一代的轻量解决方案
  • 编写python 后端 vscode 安装插件大全
  • DDD架构实战第七讲总结:分层模型和代码组织
  • Redis内存面试与分析
  • 如何在 Windows 上安装 MySQL(保姆级教程2024版)
  • RocketMQ底层哪里用了Netty
  • 51单片机(四)定时器
  • AI News(1/21/2025):OpenAI 安全疏忽:ChatGPT漏洞引发DDoS风险/OpenAI 代理工具即将发布
  • 25美赛ABCDEF题详细建模过程+可视化图表+参考论文+写作模版+数据预处理
  • 「全网最细 + 实战源码案例」设计模式——抽象工厂模式
  • 利用大语言模型(LLM)增强软件测试自动化的最佳实践
  • 【韩顺平Java笔记】第8章:面向对象编程(中级部分)【354-358】
  • AI模型提示词(prompt)优化-实战(一)
  • css遇到的一些问题