flutter 实现AppStore左右滑动

在AppStore中如何实现左右滑动,因为使用PageView会居中显示,不会居左显示,目前没有找到解决方案,我使用的方案是ListView+自定义physics实现的。

代码

SizedBox(width: 200,height: 400,child: ListView.builder(scrollDirection: Axis.horizontal,physics: const MyScreenPagePhysics(viewportDimension: 200 + 20 * 2, //需要计算viewport宽度),itemBuilder: (context, index) {return Padding(padding: EdgeInsets.symmetric(horizontal: 20),child: Column(children: [CachedNetworkImage(//图标width: 200,height: 400,fit: BoxFit.fill,imageUrl:"https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/07/b1/d7/07b1d7f0-76b1-e292-541b-c04a2eede928/AppIcon-1x_U007emarketing-0-7-0-sRGB-85-220.png/512x512bb.jpg",placeholder: (context, url) =>LoadingAnimationWidget.threeArchedCircle(color: Colors.white,size: 20,).center(),errorWidget: (context, url, error) =>const Icon(Icons.error_outline_rounded),).border(color: Colors.blue),],),);},itemCount: 2,),)

MyScreenPagePhysics.dart源码

import 'package:flutter/cupertino.dart';
import 'dart:math' as math;class MyScreenPagePhysics extends ScrollPhysics {final double viewportDimension;const MyScreenPagePhysics({super.parent,required this.viewportDimension,});@overrideMyScreenPagePhysics applyTo(ScrollPhysics? ancestor) {return MyScreenPagePhysics(parent: buildParent(ancestor),viewportDimension: viewportDimension,);}double _getPage(ScrollMetrics position) {return position.pixels / position.viewportDimension;}double _getPixels(ScrollMetrics position, double page) {return math.min(position.maxScrollExtent,page * position.viewportDimension,);}double _getTargetPixels(ScrollMetrics position, Tolerance tolerance, double velocity) {double page = _getPage(position);if (velocity < -tolerance.velocity) {page -= 0.5;} else if (velocity > tolerance.velocity) {page += 0.5;}return _getPixels(position, page.roundToDouble());}@overrideSimulation? createBallisticSimulation(ScrollMetrics _position, double velocity) {ScrollMetrics position = _position.copyWith(viewportDimension: viewportDimension,);if ((velocity <= 0.0 && position.pixels <= position.minScrollExtent) ||(velocity >= 0.0 && position.pixels >= position.maxScrollExtent)) {return super.createBallisticSimulation(position, velocity);}final Tolerance tolerance = toleranceFor(position);final double target = _getTargetPixels(position, tolerance, velocity);if (target != position.pixels) {return ScrollSpringSimulation(spring, position.pixels, target, velocity,tolerance: tolerance);}return null;}
}

效果图
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/44533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中实现二维数组(矩阵)的转置

在矩阵运算中&#xff0c;矩阵的转置是一个基本操作&#xff0c;即将矩阵的行变成列&#xff0c;列变成行。在Java中&#xff0c;我们可以通过编写一个方法来实现二维数组的转置。下面&#xff0c;我将详细介绍如何在Java中完成这一任务&#xff0c;并提供完整的代码示例。 编…

鸿蒙语言基础类库:【@ohos.util.TreeSet (非线性容器TreeSet)】

非线性容器TreeSet 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 T…

HDFS 块重构和RedundancyMonitor详解

文章目录 1. 前言2 故障块的重构(Reconstruct)2.1 故障块的状态定义和各个状态的统计信息2.2 故障文件块的查找收集2.5.2.1 misReplica的检测2.5.2.2 延迟队列(postponedMisreplicatedBlocks)的构造和实现postponedMisreplicatedBlocks中Block的添加postponedMisreplicatedBloc…

绿盟培训入侵排查

一、webshell 排查 1、文件特征 2、windows 3、linux 4、内存马 二、web 日志排查 1、日志排查 2、中间件报错排查 三、服务器失陷处置

Windows环境人大金仓数据库命令常规操作

Windows环境人大金仓数据库命令常规操作 下文将介绍人大金仓数据库常见命令操作&#xff0c;包括具体使用命令如创建数据库、创建用户、授权等相关操作。 1、打开命令提示符窗口 找到数据库安装目录进入server/bin目录&#xff0c;输入cmd,打开命令提示符窗口&#xff0c;如…

Java getSuperclass和getGenericSuperclass

1.官方API对这两个方法的介绍 getSuperclass : 返回表示此 Class 所表示的实体&#xff08;类、接口、基本类型或 void&#xff09;的超类的 Class。如果此 Class 表示 Object 类、一个接口、一个基本类型或 void&#xff0c;则返回 null。如果此对象表示一个数组类&#xff…

探秘微信广告设计组:一位产品体验设计师的日常与成长

目录 我的工位&#xff1a;灵感与回忆的汇聚地 我们的设计&#xff1a;用心定格每一个瞬间 设计的多样性&#xff1a;从社交广告到过年IP形象 咖啡与工作的日常&#xff1a;从抵触到入坑 广告设计&#xff1a;我选择&#xff0c;我热爱 实习生的培养&#xff1a;实践与思…

Qt(四)事件

文章目录 一、概念二、&#xff08;一&#xff09;&#xff08;二&#xff09;QImage类&#xff08;三&#xff09;鼠标事件和键盘事件1. 鼠标事件2. 键盘事件 &#xff08;四&#xff09;定时器事件1. 采用定时器事件2. QTimer定时器类 三、 一、概念 事件是由窗口系统或者自…

小程序内容管理系统设计

设计一个小程序内容管理系统&#xff08;CMS&#xff09;时&#xff0c;需要考虑以下几个关键方面来确保其功能完善、用户友好且高效&#xff1a; 1. 需求分析 目标用户&#xff1a;明确你的目标用户群体&#xff0c;比如企业、媒体、个人博主等&#xff0c;这将决定系统的功…

zynq启动和程序固化流程

普通FPGA启动 FPGA的启动方式主要包含主动模式、被动模式和JTAG模式。 主动模式&#xff08;AS模式&#xff09; 当FPGA器件上电时&#xff0c;它作为控制器从配置器件EPCS中主动发出读取数据信号&#xff0c;并将EPCS的数据读入到自身中&#xff0c;实现对FPGA的编程。这种…

Mac的系统数据怎么删除 cleanmymac会乱删东西吗 cleanmymac有用吗

作为一款专业级的苹果电脑清理软件&#xff0c;CleanMyMac可以精准识别系统垃圾&#xff0c;有效防止Mac系统数据被误删。软件可以深入系统底层&#xff0c;清理无用的系统数据&#xff0c;优化苹果电脑设置&#xff0c;提升Mac系统性能。有关Mac的系统数据可以删吗&#xff0c…

计算机视觉之ResNet50图像分类

前言 图像分类是计算机视觉应用中最基础的一种&#xff0c;属于有监督学习类别。它的任务是给定一张图像&#xff0c;判断图像所属的类别&#xff0c;比如猫、狗、飞机、汽车等等。本章将介绍使用ResNet50网络对CIFAR-10数据集进行分类。 ResNet网络介绍 ResNet50网络是由微…

Nature Protocols:整合多组学并进行因果推理的系统框架

转载自&#xff1a;MetaAI 在生物学研究中&#xff0c;随着实验和计算技术的进步&#xff0c;生物系统研究产生了大量高通量数据。技术努力主要集中在提高吞吐量、降低成本和提升实验与计算效率。因此&#xff0c;整合不同类型组学数据&#xff0c;并通过关联分析识别关键因素…

基于主成分分析PCA的一维时间序列信号降噪方法(Python)

主成分分析PCA是面向模式分类的特征提取最典型的工具&#xff0c;是满足上述映射准则的一种数据压缩的方法。作为经典的特征提取方法&#xff0c;是在不减少原始数据所包含的内在信息前提下&#xff0c;将原始数据集转化为由维数较少的“有效”特征成分来表示&#xff0c;使其在…

GD32F303之CAN通信

1、CAN时钟 GD32F303主时钟频率最大是120Mhz,然后APB1时钟最大是60Mhz,APB2时钟最大是120Mhz,CAN挂载在APB1总线上面 所以一般CAN的时钟频率是60Mhz,这个频率和后面配置波特率有关 2、GD32F303时钟配置 首先我们知道芯片有几个时钟 HXTAL&#xff1a;高速外部时钟&#xff1…

用理解与包容对待阿斯伯格综合征患者

在我们的社会中&#xff0c;存在着这样一个特殊的群体——阿斯伯格综合征患者。他们在社交互动、沟通交流和行为模式上有着独特的表现&#xff0c;需要我们以正确的方式去理解和对待。 我们要认识到阿斯伯格综合征是一种神经发育障碍&#xff0c;而非个人的选择或过错。患者可能…

AI Earth——中国城市绿地对大气污染干沉降作用估计数据集(DDEP)应用APP

基于数学模型量化植被的干沉降过程,突破传统站点尺度研究的局限性,结合多源卫星遥感产品形成2000-2020年中国城市绿地对PM2.5和PM10的干沉降量估计栅格数据集,对城市大气污染防治、绿地区域规划和城市可持续发展有重要意义. 应用结果 代码 #导入安装包 import os import …

本地部署,强大的面部修复与增强网络CodeFormer

目录 什么是 CodeFormer&#xff1f; 技术原理 主要功能 应用场景 本地部署 运行结果 结语 Tip&#xff1a; 在图像处理和计算机视觉领域&#xff0c;面部修复和增强一直是一个备受关注的研究方向。近年来&#xff0c;深度学习技术的飞速发展为这一领域带来了诸多突破性…

c++:面向对象的继承特性

什么是继承 (1)继承是C源生支持的一种语法特性&#xff0c;是C面向对象的一种表现 (2)继承特性可以让派生类“瞬间”拥有基类的所有&#xff08;当然还得考虑权限&#xff09;属性和方法 (3)继承特性本质上是为了代码复用 (4)类在C编译器的内部可以理解为结构体&#xff0c;派…

BJT交流分析+共发射极(CE)放大器+单片机的中断系统(中断的产生背景+使用中断重写秒表程序+中断优先级)

2024-7-10&#xff0c;星期三&#xff0c;16:58&#xff0c;天气&#xff1a;阴&#xff0c;心情&#xff1a;晴。今天终于阴天啦&#xff0c;有点风凉快一点了&#xff0c;不然真要受不了了&#xff0c;然后没有什么特殊的事情发生&#xff0c;继续学习啦&#xff0c;加油加油…