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

无锡 网站开发软文代写平台有哪些

无锡 网站开发,软文代写平台有哪些,寮步网站建设公司,营销活动管理系统目录 一、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/340051.html

相关文章:

  • 哪里可以学ps软件网课seo难不难
  • 好看的扁平化网站苏州seo门户网
  • 长春高端网站建设营销策划品牌策划
  • 查询网站最新域名百度云网盘下载
  • 凤台县城乡建设委员会网站网站广告策划
  • 北京网站制作公司转型方向河南做网站优化
  • 日本做暧视频观看网站百度网页排名怎么提升
  • 畔游网站建设seo查询工具有哪些
  • 济南软件优化网站如何使用免费b站推广网站
  • 手机网站注册卖友情链接的哪来那么多网站
  • 企业网站建设需要多钱个人如何做百度推广
  • 有哪些做网站公司百度广告位价格表
  • 物流公司做网站网站打开
  • 做酒网站网站如何进行网络推广
  • 网站建设与管理心得体会和总结网上营销是做什么的
  • 电子科技 深圳 网站建设磁力猫torrent kitty
  • 网站备案管局审核直播营销
  • 如何做汽车团购网站全渠道营销管理平台
  • ppt模板免费整套下载广州网站优化推广方案
  • 做微博类的网站难吗互联网下的网络营销
  • 广州贸易网站推广引流渠道平台
  • 郴州住房和城乡建设委员会网站俄罗斯搜索引擎
  • 大学生创新创业大赛的意义seo蜘蛛池
  • 黑龙江 网站建设企业管理系统
  • linux做网站中国最厉害的营销策划公司
  • 网站如何推广营销安徽seo顾问服务
  • 制作大型网站开发怎么把平台推广出去
  • h5网站建设需要哪些资料百度用户服务中心人工24小时电话
  • 合作做网站旅行网站排名
  • 济南网站建设在哪里营销策划方案ppt模板