Flutter系列(九)ListView实现新闻列表和正文布局

本文介绍如何使用Flutter构建新闻应用,包括新闻列表和新闻正文的布局。重点讲解了ListView.separated、ListTile、Scrollbar和SingleChildScrollView等组件的使用,以及解决大标题与小标题间距问题的方法。
摘要由CSDN通过智能技术生成

基础工程:

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

相关文章:

Flutter系列(七)ListView 图文列表详解_flutter 图文列表_摸金青年v的博客-CSDN博客

一、前言

        本文用flutter实现新闻app,新闻列表新闻正文布局,效果展示如下图:

              

二、使用的组件

  1. ListView.separated     带分割线的ListView
  2. ListTile         设置每条新闻的布局
  3. Scrollbar      给它的子组件添加页面滚动条,展示浏览进度
  4. SingleChildScrollView      给它的子组件添加滚动效果,而且组合Expanded组件,可以添加固定在页面上顶部或底部的工具栏

三、完整代码

3.1 新闻列表   recommend.dart

import 'package:flutter/material.dart';
import 'package:flutter_play/animationUtile.dart';
import 'package:flutter_play/article.dart';

/*推荐页*/
class RecommendPage extends StatefulWidget {
  @override
  State<RecommendPage> createState() => _RecommendPage();
}

class _RecommendPage extends State<RecommendPage> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Scrollbar(
        child: ListView.separated(
          itemCount: listData.length,  //条目个数:获取数据的个数
          separatorBuilder: (context, index) { // <-- SEE HERE
            return const Divider();
          },  //分割线必要参数
          itemBuilder: (context, index) {
            return GestureDetector(
              onTap: (){
                Navigator.of(context).push(showPageFromRight(ArticlePage())); //点击跳转到新闻详情
              },
              child: ListTile(
                title: Text(listData[index]["title"]), //大标题
                subtitle: Column(
                  crossAxisAlignment: CrossAxisAlignment.start, //左对齐
                  children: [
                    const SizedBox(height: 12),  //设置title和subtitle的间距
                    Text(listData[index]["subtitle"], style: const Text
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值