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

电子商务网站建设题6动漫制作专业的学校

电子商务网站建设题6,动漫制作专业的学校,五金技术支持东莞网站建设,中国三北防护林体系建设网站目录 一、ListView构造方法1.1 常规方法1.2 ListView.builder1.3 ListView.separated 二、自定义ListView样式和布局:三、ListView性能优化:总结: 一、ListView构造方法 主要以下几种方法: 常规方法,直接使用默认的构…

目录

  • 一、ListView构造方法
    • 1.1 常规方法
    • 1.2 ListView.builder
    • 1.3 ListView.separated
  • 二、自定义ListView样式和布局:
  • 三、ListView性能优化:
  • 总结:

一、ListView构造方法

主要以下几种方法:

  • 常规方法,直接使用默认的构造方法
  • ListView.builder
  • ListView.separated

1.1 常规方法

ListView的常规方法:就是利用默认方法构造各个item,ListView有个children属性:传入多个widget:

import 'package:flutter/material.dart';main(List<String> args) {runApp(const MyApp());
}class MyApp extends StatelessWidget {// This widget is the root of your application.Widget build(BuildContext context) {const title = 'ListView的使用';return MaterialApp(debugShowCheckedModeBanner: false,title: title,theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),useMaterial3: true,),home: Scaffold(appBar: AppBar(title: const Text(title),),body:MyHomeBody(),);}
}class MyHomeBody extends StatelessWidget {const MyHomeBody({super.key});final TextStyle textStyle = const TextStyle(fontSize: 10, color: Colors.blue);Widget build(BuildContext context) {return  ListView(children: List<Widget>.generate(100, (i) => Text('列表 $i')),);}
}

运行效果图如下:

常规方法

1.2 ListView.builder

List<Widget>.generate 会默认把所有子item全部创建出来,如果子item数量过多时,会影响页面的渲染时间,ListView.builder不会把所有子item创建出来,会在真正需要的时候构建出来,不会一开始全部初始化出来,适合数量很多item的场景:

void main() {runApp(MyApp(items: List<String>.generate(10000, (i) => '列表 $i'),),);
}class MyApp extends StatelessWidget {final List<String> items;const MyApp({super.key, required this.items});// This widget is the root of your application.Widget build(BuildContext context) {const title = 'ListView的使用';return MaterialApp(debugShowCheckedModeBanner: false,title: title,theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),useMaterial3: true,),home: Scaffold(appBar: AppBar(title: const Text(title),),body:ListView.builder(itemCount: items.length,prototypeItem: ListTile(title: Text(items.first),),itemBuilder: (context, index) {return ListTile(title: Text(items[index]),);},),);}
}

运行效果图如下:
ListView.builder

1.3 ListView.separated

ListVIew.separated相比ListView.builder只是每项之间增加了一个分割符合:

void main() {runApp(MyApp(items: List<String>.generate(10000, (i) => '列表 $i'),),);
}class MyApp extends StatelessWidget {final List<String> items;const MyApp({super.key, required this.items});// This widget is the root of your application.Widget build(BuildContext context) {const title = 'ListView的使用';return MaterialApp(debugShowCheckedModeBanner: false,title: title,theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),useMaterial3: true,),home: Scaffold(appBar: AppBar(title: const Text(title),),body:ListView.separated(itemCount: items.length,separatorBuilder: (context, index) => const Divider(),itemBuilder: (context, index) {return ListTile(title: Text(items[index]),);},),);}
}

运行效果图如下:
ListView.separated


二、自定义ListView样式和布局:

我们可以使用ListView.builder的itemBuilder属性来自定义列表项的样式和布局,下面一个例子是动态设置item布局背景

void main() {runApp(MyApp(items: List<String>.generate(10000, (i) => '列表 $i'),),);
}class MyApp extends StatelessWidget {final List<String> items;const MyApp({super.key, required this.items});// This widget is the root of your application.Widget build(BuildContext context) {const title = 'ListView的使用';return MaterialApp(debugShowCheckedModeBanner: false,title: title,theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),useMaterial3: true,),home: Scaffold(appBar: AppBar(title: const Text(title),),body:ListView.builder(itemCount: items.length,itemBuilder: (context, index) {return Container(color: index % 2 == 0 ? Colors.grey[300] : Colors.red,padding: const EdgeInsets.all(16),child: Text(items[index]),);},),),);

运行效果图如下:
自定义布局和样式


三、ListView性能优化:

当使用ListView显示大量数据时,为了提高性能,推荐以下优化方式:

  1. 使用ListView.builder或ListView.separated来按需构建列表项,避免一次性构建所有的项。
  2. 使用ListView.separated并提供合适的分隔符构建方法,避免不必要的分隔符构建。
  3. 如果列表项固定是高度,请使用itemExtent属性来指定项的高度,避免动态计算高度带来的性能开销。
  4. 使用ScrollController来控制滚动,并使用addPostFrameCallback在构建完成后延迟加载数据。

总结:

上文我们介绍构建ListView常见的几种使用方法,以及简单的自定义布局和样式方法的例子,优化ListView性能方式方法,使用ListView推荐使用ListView.builder、ListView.separated。
Thanks:
Flutter可滚动组件(2):ListView基本使用


文章转载自:

http://u4ExHiU4.qykxj.cn
http://5hRPN4mE.qykxj.cn
http://jWsdIGBh.qykxj.cn
http://nTxltXE0.qykxj.cn
http://sjca7yhz.qykxj.cn
http://4S7CVcML.qykxj.cn
http://8ysqO76z.qykxj.cn
http://M94CwfZP.qykxj.cn
http://hMrfcHz6.qykxj.cn
http://WD6ESJXd.qykxj.cn
http://MxcyrAoE.qykxj.cn
http://FRtjcq9X.qykxj.cn
http://62LitWKV.qykxj.cn
http://kI1gHm5f.qykxj.cn
http://zMsW0Ubt.qykxj.cn
http://AuYqAlXT.qykxj.cn
http://lneQB1fQ.qykxj.cn
http://L6dIRjQO.qykxj.cn
http://6b8IJoCI.qykxj.cn
http://5kcZNTaC.qykxj.cn
http://s9wBXl9h.qykxj.cn
http://hyP9U9Nm.qykxj.cn
http://cFKL2zNU.qykxj.cn
http://NSFmEqjt.qykxj.cn
http://m7reM1Qr.qykxj.cn
http://exp4UF0v.qykxj.cn
http://kCPcj7wV.qykxj.cn
http://7R6BaaJh.qykxj.cn
http://Y4xbEuJg.qykxj.cn
http://J6wizeDK.qykxj.cn
http://www.dtcms.com/wzjs/633173.html

相关文章:

  • 网站建设 教学视频临沂城市建设网站
  • 网站怎么添加js广告位wordpress 漂浮插件
  • 网站设计制作是什么wordpress会员插件系统
  • 海南电商网站建设深圳网站建设 罗湖
  • 深圳公司网站建设服务为先浦东建设网站
  • 婚庆公司网站怎么做企业seo顾问服务公司
  • 网站背景图片优化wordpress 添加网页
  • 央视网商城网站建设网站备案以后怎么做
  • 巩义网站建设案例网站开发vs2013
  • 网站专题策划案例来个网站好人有好报2024
  • 余姚微信网站建设项目开发的主要流程步骤
  • 企业网站建设博客论坛wordpress教程安装教程视频教程
  • wordpress零基础建站教程江西省建设协会网站
  • 网站备案 非经营荆州网站开发好招人吗
  • 济南做网站优化价格做网站 科目
  • 如何免费做网站域名网站建设捌金手指花总二七
  • 做网站主要学什么软件重庆网站排名优化
  • 中国融资网wordpress内部优化
  • 买网站做seo网站要设置哪些栏目
  • 天津电商网站建设重庆网捷网站建设技术有限公司
  • wordpress产品展示主题中文seo wordpress 插件
  • 廊坊网络公司网站什么是seo和sem
  • 如何做网站搬运工赚钱组成原理毕业设计代做网站推荐
  • 张家港做网站多少钱市场营销策划课程
  • 网站和微信 微网站解决方案网站备案 照片
  • 朝阳网站建设seo做什么网站赚钱
  • 怎么看网站有没有被收录制作视频的软件哪个好用
  • 购物小网站建设网站搭建心得
  • 贵阳网站开发价格昆明新闻最新消息今天
  • asp源码自助建站wordpress更换默认播放器