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.pswp.cn/diannao/44533.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44533.shtml
英文地址,請注明出處:http://en.pswp.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、中間件報錯排查 三、服務器失陷處置

Element-UI Select組件使用value-key屬性,讓綁定值可以為一個對象

當我們使用 Elemet UI 的 Select 組件的綁定值是一個對象 :value="item" 如: <el-form-item label="選擇應用" prop="appInfo"><el-select v-model=

每日一題cf

文章目錄 Swap and Reverse題意&#xff1a;題解&#xff1a;代碼&#xff1a; Swap and Reverse 題意&#xff1a; 給定一個長度為n的正整數數組&#xff0c;給定k。可以進行任意次一下操作 選定 i i i&#xff0c;交換 a i a_{i} ai?和 a i 2 a_{i2} ai2?的值選定 i i …

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定時器類 三、 一、概念 事件是由窗口系統或者自…

充電樁項目

1. 多對一&#xff08;多個監測設備檢測&#xff0c;數據發送給一個服務器&#xff09; 2. 原理 充電樁溫度變化引起PT100阻值變換&#xff08;測溫電流衰減微弱&#xff0c;幾乎恒定&#xff0c;電壓隨之變化)&#xff0c;經過測溫模塊轉化成電壓的變化&#xff08;內部是電流…

小程序內容管理系統設計

設計一個小程序內容管理系統&#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…

javascript如何定義數組和從數組取值,獲取數組長度

javascript如何定義數組 javascript定義數組的格式是 var 數組名[數組元素]或者 let 數組名[數組元素] javascript數組和python的列表很相似&#xff0c;真要懶的話&#xff0c;不用定義數據類型&#xff0c;不像c語言和java那樣限制數據類型。 定義數組示例代碼 <bod…

Unity Addressable魔改

新增回調 在使用過程中&#xff0c;輸出之后還需要手動拷貝到服務器上會麻煩&#xff0c;一旦未拷貝編輯器還會因為加載&#xff08;同步加載&#xff09;的問題卡死。所以可以到Unity的PacakgeCache中修改本地倉庫中的Addressable對應版本的包。找不到位置可以用everything搜…

計算機視覺之ResNet50圖像分類

前言 圖像分類是計算機視覺應用中最基礎的一種&#xff0c;屬于有監督學習類別。它的任務是給定一張圖像&#xff0c;判斷圖像所屬的類別&#xff0c;比如貓、狗、飛機、汽車等等。本章將介紹使用ResNet50網絡對CIFAR-10數據集進行分類。 ResNet網絡介紹 ResNet50網絡是由微…

Nature Protocols:整合多組學并進行因果推理的系統框架

轉載自&#xff1a;MetaAI 在生物學研究中&#xff0c;隨著實驗和計算技術的進步&#xff0c;生物系統研究產生了大量高通量數據。技術努力主要集中在提高吞吐量、降低成本和提升實驗與計算效率。因此&#xff0c;整合不同類型組學數據&#xff0c;并通過關聯分析識別關鍵因素…

linux 內核 紅黑樹接口說明

紅黑樹(rbtree)在linux內核中使用非常廣泛,cfs調度任務管理&#xff0c;vma管理等。本文不會涉及關于紅黑樹插入和刪除時的各種case的詳細描述,感興趣的讀者可以查閱其他資料。本文主要聚焦于linux內核中經典rbtree和augment-rbtree操作接口的說明。 1、基本概念 二叉樹:每個…

基于主成分分析PCA的一維時間序列信號降噪方法(Python)

主成分分析PCA是面向模式分類的特征提取最典型的工具&#xff0c;是滿足上述映射準則的一種數據壓縮的方法。作為經典的特征提取方法&#xff0c;是在不減少原始數據所包含的內在信息前提下&#xff0c;將原始數據集轉化為由維數較少的“有效”特征成分來表示&#xff0c;使其在…