Flutter系列(七)ListView 图文列表详解

完整工程:

Flutter系列(四)底部导航+顶部导航+图文列表完整代码_摸金青年v的博客-CSDN博客

详细解读:

Flutter系列(五)底部导航详解_摸金青年v的博客-CSDN博客

Flutter系列(六)顶部导航详解_摸金青年v的博客-CSDN博客

一、前言

        本文介绍一种flutter常见布局结构:图文列表,常用于新闻资讯类app展示信息

二、使用的组件

1. ListView

属性 释义 类型
itemCount 列表项数量 int
prototypeItem 计算预加载空间 Widget
itemBuilder 实际展示内容 Widget

2. ListTile

属性 释义 类型
title 标题 Widget
subtitle 子标题 Widget
trailing 右侧组件 Widget

           title使用Text组件,trailing右侧组件使用Image组件

3. Image

1)加载本地图片

条件1:  配置图片加载路径,在pubspec.yaml 添加配置

  assets:
     - images/mobile.jpg

条件2:创建图片文件夹images放图片,  images创建在工程的根路径,和lib同级目录

使用:

Image.asset('images/mobile.jpg',
              fit: BoxFit.fill,
              width: 64,
              height: 64),
        ),

2)加载网络图片

条件:对于真机调试,需要申请网络权限

在 app/src/main/AndroidManifest.xml 配置:和<application>同级

<!-- 申请访问网络权限 -->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

使用: 

Image.network('https://img-blog.csdnimg.cn/c6dfd375abf1433fa3a42951cc186a2b.jpeg',
                fit: BoxFit.fill,
                width: 64,
                height: 64),

图片素材来源:https://pixabay.com/zh/    免版权图片网站

              

图片上传至csdn

网络加载使用:https://img-blog.csdnimg.cn/c6dfd375abf1433fa3a42951cc186a2b.jpeg

预加载使用本地图片:images/mobile.jpg

三、图文列表完整代码

 final List<String> items = List<String>.generate(50, (i) => 'Item $i'); //50个标题

 @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView.builder(
        itemCount: items.length,
        //prototypeItem 计算预加载需要的空间,内容和ListTile相同
        prototypeItem: ListTile(
          title: Text(items.first),
          subtitle: Text(items.first),
          trailing: Image.asset('images/mobile.jpg',
              fit: BoxFit.fill,
              width: 64,
              height: 64),
        ),
        itemBuilder: (context, index) {
          //ListTile 实际展示的列表内容
          return ListTile(
            title: Text(items[index]),  //大标题
            subtitle: Text(items[index]),  //小标题
            trailing: Image.network('https://img-blog.csdnimg.cn/c6dfd375abf1433fa3a42951cc186a2b.jpeg',
                fit: BoxFit.fill,
                width: 64,
                height: 64),
          );
        },
      ),
    );
  }

展示样式和完整工程:

Flutter系列(四)底部导航+顶部导航+图文列表完整代码_摸金青年v的博客-CSDN博客

END...

猜你喜欢

转载自blog.csdn.net/sinat_41144773/article/details/130040634
今日推荐