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

无锡 网站开发怎么创建自己的网址

无锡 网站开发,怎么创建自己的网址,东莞网站建设17,官方网站有哪些目录 一、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://www.dtcms.com/wzjs/478011.html

相关文章:

  • 程序员 修电脑 做网站企业培训网
  • 最好在线网站建设国际新闻最新消息美国
  • 网站网站环境搭建教程百度快照推广是什么意思
  • 厦门 网站建设闽icp百度seo排名培训优化
  • 嘉兴微信网站树枝seo
  • 开网页卡百家号seo
  • 做网站用别人图片文章会侵权吗关键词挖掘啊爱站网
  • wordpress 头部 空行百度seo排名培训 优化
  • 找公司做网站有什么好处慈溪seo排名
  • 设计素材网站能挣钱吗郑州seo
  • 网站建设合同范文中国50强企业管理培训机构
  • 晋江外贸网站开发优秀软文范例100字
  • 微信微博网站建设seo英文
  • 上海优化网站方法腾讯广告
  • ai效果图网站百度关键词价格
  • 建设部网站建造师公示网站推广怎么写
  • 做网站那几步百度网盘网页版登录
  • 无锡论坛网站制作广州网站推广联盟
  • php怎么做多个网站宣传网站有哪些
  • 九亿app开发公司seo关键词排名优化是什么
  • 做网页去哪些网站找素材较好广告联盟官网入口
  • 做网站涉及个人隐私如何在百度上发布自己的广告
  • 淘宝网网站开发部技术部大地seo
  • 永川网站建设公司百度新站关键词排名
  • 成都网站建设招聘百度搜索指数查询
  • 直销网站开发站长统计官方网站
  • 网站建设价钱百度收录提交申请网站
  • 课件ppt免费下载深圳seo优化
  • 宝鸡企业网站建设老域名购买
  • 西安网站建设 盈科seo网站关键词优化软件