Flutter开发(五)—— ListView控件

Flutter开发之——可滑动组件—ListView 二 ListView。 阅读详情

ListView既可以纵向也可以横向,是Flutter中非常重要的控件。以下只是进行了简单用法的演示,因为目前我的水平也仅是熟练使用。真的等到,可以分析源码的水平时,在进入深入补充。

一图顶千言,下图为后面代码运行效果。
代码运行效果图

代码中ListView包含的条目有Container、Image、ListTile等,仅是为了基本用法,代码都是写死的。其中 Container 与 Image进行了组合运用。

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
      title: "ListViewShow",
      home: Scaffold(
        appBar: new AppBar(
            title: new Text("ListView"),
            backgroundColor: Colors.black45), // Bar 背景设置为灰色
        body: new ListView(
          //创建 ListView控件
          children: <Widget>[
            new Container(
              child: Container(
                height: 120, //Container高度
                // width: 200,  //ListView 为纵向的,所以这里的width 不生效,默认是屏幕宽度
                margin: EdgeInsets.all(10), //margin 与Android原生作用相同
                decoration: new BoxDecoration(
                  border:
                      Border.all(color: Colors.red, width: 3.0), //Container 外边框
                  borderRadius: new BorderRadius.all(
                      new Radius.circular(20.0)), //Container 倒角
                  image: new DecorationImage(
                      //有点类似与Container背景图片
                      image: new NetworkImage(
                          'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1124031774,2733632602&fm=26&gp=0.jpg'),
                      fit: BoxFit.cover //指定图片填充方式
                      ),
                ),
              ),
            ),
            new Image.network(
                "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1124031774,2733632602&fm=26&gp=0.jpg",
                height: 150,
                fit: BoxFit.cover //图片被裁剪
                ),
            new Image.network(
              "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1124031774,2733632602&fm=26&gp=0.jpg",
              height: 150,
              fit: BoxFit.fill, //图片拉伸了
            ),
            new Image.network(
                "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1124031774,2733632602&fm=26&gp=0.jpg",
                // 图片混合模式 color 和 colorBlendMode 一起使用,可以使图片偏向某种颜色或效果
                color: Color.fromARGB(100, 100, 200, 100),
                colorBlendMode: BlendMode.hardLight),

            //ListTile 简单条目
            new ListTile(
              leading: new Icon(Icons.access_time),
              title: new Text("access_time"),
            ),
            new ListTile(
              leading: new Icon(Icons.access_time),
              title: new Text("access_time"),
            ),
            new ListTile(
              leading: new Icon(Icons.access_time),
              title: new Text("access_time"),
            ),
          ],
        ),
      ),
    );
  }
}

ListView简单的动态赋值
以下演示ListTile,对其进行动态赋值。

import 'package:flutter/material.dart';

void main() => runApp(MyApp(
  items: new List<String>.generate(100, (i)=>"Item $i")  //new  List<String> 命名为items, 并且赋值 "Item $i"
));

class MyApp extends StatelessWidget {
  final List<String> items;
  MyApp({Key key,@required this.items}):super(key:key);
  
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
      title:"List",
      home: Scaffold(
        appBar: new AppBar(title: new Text("List data"),),
        body: new ListView.builder(
          itemCount: items.length,  //item 的数量
          itemBuilder: (context,index){
            return new ListTile(
              leading: new Icon(Icons.access_time), //随意放了一张图片
              title: new Text("${items[index]}"));  // 展示List对应index的内容
          },
        ),
      ),
    );
  }
}

展示效果图:
在这里插入图片描述

Flutter 布局控件完结篇 这次面试问的还是还是有难度的,要求当场写代码并且运行,也是很考察面试者写代码因为Android知识体系比较庞大和复杂的,涉及到计算机知识领域的方方面面。在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。 阅读详情

相关推荐

Flutter 框架跨平台鸿蒙开发 —— ListView 控件之高效列表渲染艺术

本文深入解析Flutter中ListView控件的核心原理与优化策略。文章首先介绍ListView的四种构建方式及其适用场景,重点分析ListView.builder的懒加载机制,通过数学模型说明其高效渲染原理。接着展示如何在鸿蒙系统中实现风格化列表,包括弹性回弹效果和圆角设计。最后针对鸿蒙多端设备提出性能优化方案,包括内存管理、预渲染区域设置等,并强调在跨平台开发中应遵循的三条核心原则:优先使用builder构造、适配系统物理效果和控制组件复杂度。

小雨下雨的雨 1019

39、Flutter之 ListView组件详解

ListView ListView是最常用的可滚动组件之一,它可以沿一个方向线性排布所有子组件,并且它也支持列表项懒加载(在需要时才会创建)。我们看看ListView的默认构造函数定义: ListView({ ... //可滚动widget公共参数 Axis scrollDirection = Axis.vertical, bool reverse = false, ScrollController? controller, bool? primary, ScrollP

wywinstonwy的专栏 1万+

Moltemplate建模----水盒子data文件

1功能介绍 Moltemplate是LAMMPS官方支持的建模工具之一,适用于LAMMPS建模。该程序创建了一种简单的文件格式来存储分子定义和力场,即模板LT。LT文件包含与特定分子有关的所有文本(包括坐标,键拓扑,角度,力场参数,约束,组和修复)。 Moltemplate可以复制分子,对其进行自定义,然后用它作为构建更大、更复杂分子的基础。构建后,可以自定义...

元素魔方科研服务 2593

android listview赋值,Android 中ListView和GridView赋值错位

ListView和GridView多次调用getView的bug,导致赋值错位最近总遇到写GridView适配器赋值时,最后一两个需定义其他图片时,赋图错误,原因就是适配器的getView多次调用,导致数据赋值错误,上网搜索终于找到解决方案,以此记录下。一.ListView1.原因因为listView一般用的是wrap_content,高度不确定,导致系统需要不断地测量,也就多次调用onMeasu...

weixin_33050117的博客 563

SAP农产品增值税进项税解决方案

(三)购进农产品用于生产经营且不构成货物实体的(包括包装物、辅助材料、燃料、低值易耗品等),用于生产适用13%税率货物的扣除率为10%,用于生产适用9%税率货物的扣除率为9%。具体计算公式为: 当期允许抵扣农产品增值税进项税额=当期耗用农产品数量×农产品平均购买单价×扣除率/(1+9%)

weixin_44228539的博客 1194

临床预测模型R语言全流程实战:从建模到Bootstrap验证的完整代码

临床预测模型是利用患者特征预测疾病结局发生概率的重要统计工具,其核心在于通过Logistic回归或Cox比例风险模型建立风险函数,并借助ROC曲线、校准曲线等指标评估模型的区分度与校准度。Bootstrap内部验证和DCA决策曲线分析则是当前审稿人关注的焦点,前者用于校正过拟合带来的乐观估计,后者用以判断模型在临床决策中的实际净获益。在肿瘤预后、慢病风险评估等场景中,基于R语言的模型构建与列线图可视化已成为论文发表的关键环节。本文以survival包自带肺癌数据为例,系统展示从数据预处理、变量筛选到多因素建

weixin_33483304的博客 240

Flutter滚动型容器组件 - ListView篇

Flutter滚动型容器组件 - ListView篇 flutter前端dartui 发布于 2019-07-10 1. 前言 Flutter作为时下最流行的技术之一,凭借其出色的性能以及抹平多端的差异优势,早已引起大批技术爱好者的关注,甚至一些闲鱼,美团,腾讯等大公司均已投入生产使用。虽然目前其生态还没有完全成熟,但身靠背后的Google加持,其发展速度已经足够惊人,可以预见将来对Flutter开发人员的需求也会随之增长。 无论是为了现在的技术尝鲜还是将来的潮流趋势,都9102年了,作为一.

augfun的博客 2052

【计算机视觉】pyrealsense2:Intel RealSense 深度相机的 Python 接口实战指南

pyrealsense2:Intel RealSense 深度相机的 Python 接口实战

weixin_43988131的博客 4350

Android之ListView

ListView          1.三种Adapter构建ListView                 ListView添加条目的时候, 可以使用setAdapter(ListAdapter)方法, 常用的ListAdapter有三种                 BaseAdapter: 定义一个类继承BaseAdapter, 重写4个抽象方法, ListView的条目是由get

1339

Vmware虚拟机一打开就蓝屏解决方法

Vmware虚拟机一打开就蓝屏解决方法 问题: 一打开Vmware虚拟机就蓝屏,如下图所示: 解决方法1: 启用和关闭windows功能(对话框)——>虚拟机平台(选项打对勾,默认没勾选)——>确定后重启——>再进应该就好了。 解决方法2: ①.查看电脑中的Hyper-V服务是否关闭 1.打开控制面板-程序-程序和功能 2.双击启用或关闭Windows功能 3.把Hyper-V前面的勾去掉 如果后期发下没有反应,或者电脑本身Hyper-V的服务没有打开,可以先打开在关闭,试

m0_55901666的博客 26万+

YOLOv5入门实践(1)——手把手带你环境配置搭建

YOLOv5入门实践第一步,手把手带你配置环境

路人贾的博客 2万+

Flutter ListView详解

ListView详解ListView常用构造ListViewListView ListTileListView builderListView separatedListView custom ListView常用构造 ListView ListView ListTile ListView builder ListView separated ListView custom ...

trues的博客 5万+

【SemiDrive源码分析】【X9芯片启动流程】11 - freertos_safetyos目录Cortex-R5 DIL2.bin 引导程序源代码分析

【SemiDrive源码分析】【X9芯片启动流程】11 - freertos_safetyos目录Cortex-R5 DIL2.bin 引导程序源代码分析

|~~~热爱生活、努力学习的小伙汁~~~| 2106

Flutter开发(五)—— ListView控件横向展示

Flutter开发(四)—— ListView控件介绍了ListView的简单用法,这里配了一张动态图片,看下ListView横向的效果。手机上跑的效果是非常流程的(跟原生没有任何区别),这里使录制14帧/秒(控制图片体积)。 以下代码结构很简单,但是为了证实flutter的View编写也可以分代码,所以进行了简单封装: 1、将整个View代码到了ViewShow中; 2、将ListView代码...

RedKeyer的博客 3149

从数据到行动:客服运营必分析的8大核心维度

服务运营正从被动响应升级为数据驱动型战略体系。客服中心的海量交互数据能精准反映服务效能、客户体验及运营短板,关键在于实现数据的可视化与可操作化。本文系统剖析了八类核心数据指标:1)客户行为数据(CSAT/NPS/投诉内容);2)通话效率指标(AHT/接通率);3)服务质量(质检体系/情绪识别);4)坐席绩效(FCR/客户评价);5)流程与知识库(转接率/工单时效);6)渠道流量分析;7)异常预警机制;8)成本收益模型。通过构建多维数据分析体系,企业可在客户全生命周期管理中实现服务升级、风险防控与资源

2202_75469062的博客 1400

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Flutter 列表控件ListView

Flutter ListView 列表布局在手机上是最最常用的控件了。 Android上的RecycleView尤其的强大。 Flutter中也给我们提供了ListView,不过就目前的体验来看,性能跟原生的ListView或RecycleView比还是有一点差距的。滑动起来还是略卡。 下面我们来看一下ListView的相关知识 继承关系 可以看到,ListView和GridView都继承自Bo...

喻志强的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Flutter ListView控件

例如,SliverChildDelegate 可以控制用于估计实际不可见的子项大小的算法。});

且听真言 1024

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

「 Flutter」Container、Image 和 ListView 控件

Container 控件 Container widget 可以用来创建一个可见的矩形元素。 Container 可以使用 BoxDecoration 来进行装饰,如背景,边框,或阴影等。 Container 还可以设置外边距、内边距和尺寸的约束条件等。另外,Container可以使用矩阵在三维空间进行转换。 class HomeContent extends StatelessWidget { @override Widget build(BuildContext context) { r

军火库 1852

解决Flutter的ListView嵌套ListView滑动冲突以及无限高度问题

关键代码 shrinkWrap: true, //解决无限高度问题 physics:NeverScrollableScrollPhysics(),//禁用滑动事件 可滑动控件都有这两个属性,给子滑动部件设置上这两个参数,即可办到子ListView跟随父ListView滑动。 demo 代码 import 'package:flutter/material.dart'; class BossMa...

骑猪也能看夕阳 5312

Flutter 折叠控件

1.官方折叠控件ExpansionTiles 官方默认提供了一个折叠控件 ExpansionTiles 主要用于listView做折叠和展开操作的,先来看看一般的用法 Widget _buildTiles(Entry root) { return new ExpansionTile( title: new Text(root.title), children: ro...

lizubing1992的专栏 1万+

【Flutter】ListView中嵌套ListView

在开发业务中有很多场景都是,一个竖直排列的ListView里面套用一个水平排列的ListView,但是直接套用会报错,于是在网上搜索各种解决办法,有些文章会提示加一些属性,但是这个直接原因就是水平排列的ListView没有高度,只需要在ListView外边套一个控件撑开高度即可。 ListView.builder( itemBuilder: (BuildContext co...

夜雨Gecer的博客 4480

Flutter基础控件:ListView、ListTile、Scrollbar

ListView属性scrollDirectionreversecontrollerprimaryphysicsshrinkWrappaddingitemExtentaddAutomaticKeepAlivesaddRepaintBoundariesaddSemanticIndexescacheExtentchildrensemanticChildCountdragStartBehavior方法ListTile 属性 scrollDirection 滑动的方向。默认Axis.vertical为垂直方向滑动

青蛙不吃草 1498

Flutter 基础控件 ListView

Flutter 基础控件 ListView 简单使用 /// ListView 简单案例 class ListViewDemo extends StatelessWidget { @override Widget build(BuildContext context) { return ListView( children: <Widget>[ ...

小小熊的博客 208

Flutter实现ListView效果

在Flutter中,Android ListView就是Flutter中的ListView 在Android ListView中,您可以创建一个适配器,然后您可以将它传递给ListView,该适配器将使用适配器内返回的内容来展示每一行。然而,你必须确保在合适的时机回收行,否则,你会得到各种疯狂的视觉和内存问题。 在Flutter中,由于Flutter的不可变的widget模型,将一个Widge...

u010221508的博客 4098

Flutter控件——常用控件:ListView

ListView

wzj_what_why_how的博客 1030
上一篇: Flutter开发(四)——Image Widget控件
下一篇: Flutter开发(五)—— ListView控件横向展示
RedKeyer
博客等级 码龄11年 33粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值