详情页

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

// widget代表了我们的 MovieDetail 这个类

// 当前类是控制器,需要用 widget.属性名 来访问被控制的类接收到的参数

title: Text('${widget.name}'),

),

// 因为从上到下的排版很长,超过一屏幕的高度,因此不能使用 Column,Column高度会溢出

body: ListView(

children: <Widget>[

// 第一个图片

Padding(

padding: EdgeInsets.fromLTRB(80, 80, 80, 30),

child: Container(

height: 270,

child: Image(

fit: BoxFit.cover,

// true 得到数据了, 使用正常数据

// false 没有数据, 渲染loading图

image: _reqflag

? NetworkImage('${_resetimg(_mapdata["img"])}')

: AssetImage('images/loading.png'),

),

),

),

// 之后一个个往后排列我们的文字

TextSection(title: '名称', text: '${widget.name}'),

TextSection(title: '年代', text: '${_map["year"]}'),

TextSection(title: '产地', text: '${_map["src"]}'),

TextSection(title: '类别', text: '${_map["cat"]}'),

TextSection(title: '语言', text: '${_map["language"]}'),

TextSection(title: '上映日期', text: '${_map["comingTitle"]}'),

TextSection(title: '豆瓣评分', text: '${_map["sc"]}'),

TextSection(title: '片长', text: '${_map["howLong"]}'),

TextSection(title: '导演', text: '${_map["director"]}'),

TextSection(title: '主演', text: '${_map["star"]}', axisFlag: true),

TextSection(

title: '简介',

text: '${_reqflag ? _mapdata["dra"] : _map["dra"]}',

axisFlag: true),

],

),

);

}

String _resetimg(img) => img.replaceAll('/w.h/', '/');

}

// 我们把下面纵向的排列的文本进行了一次封装

class TextSection extends StatelessWidget {

TextSection({

Key key,

@required this.title,

@required this.text,

this.axisFlag,

}) : super(key: key);

final String title;

final String text;

final bool axisFlag;

@override

Widget build(BuildContext context) {

return Container(

padding: EdgeInsets.fromLTRB(10, 0, 10, 10),

child: Row(

// 纵轴对齐,但是需要单独处理,只有主演项和简介内容区域的时候才适合

// 所以根据传递过来的参数确实使用顶部对齐或者是中间对齐

crossAxisAlignment: axisFlag == true

? CrossAxisAlignment.start

: CrossAxisAlignment.center,

children: <Widget>[

// 左半部分是 title

Container(

width: 89,

child: Text('◎  ${_titleReset(title)}'),

),

// 右半部分是内容

Expanded(

child: Padding(

padding: EdgeInsets.only(left: 0),

child: Text('$text'),

),

),

],

),

);

}

String _titleReset(String title) {

if (title.length == 2) {

return '${title[0]}        ${title[1]}';

} else {

return title;

}

}

}

Flutter项目——静态页面布局4详情页相关推荐

  1. vue项目keepAlive保持页面状态(详情页返回列表页不刷新)

    vue项目keepAlive保持页面状态(详情页返回列表页不刷新) 在vue项目中,存在从列表页跳转到详情页查看,而后又返回列表页的操作时,如果列表过长,我们往往希望从详情页返回列表页时,列表页能留在 ...

  2. 尚硅谷VUE项目-前端项目问题总结07--产品详情页【vuex-排他操作foreach-放大镜-轮播图-兄弟组件通信$bus-购物车-路由跳转传参-路由传参+会话存储】-游客身份-节流

    尚硅谷VUE项目-前端项目问题总结07---产品详情页 1.静态组件(详情页还未注册为路由组件) 2.发请求 3.vuex-获取产品详情信息 3.1放大镜 3.2 属性值[排他操作] 3.3轮播图[j ...

  3. 关于 静态页面布局 中的一些BUG

    作为一枚初级程序猿,难免在制作静态页面时会遇到一些BUG,在此,我从网上找了一些资料并且结合自己的项目开发经验,总结了一些在静态页面布局时可能会遇到的问题,希望能对初级程序猿有一定的帮助(资料请参考: ...

  4. 前端实习周记1---环境配置、静态页面、作品呈现页

    一.环境配置 刚去公司实习,先配发了电脑,之后导师让自己先配置一下公司域网.配置VS.node.git环境 1.node安装 node一定要安装低一些的版本,下载地址: https://nodejs. ...

  5. 美食杰项目(四)美食详情页

    目录 前言: 具体样式 实现效果 代码思路 相应的组件 相关代码 总结: 前言: 本节给大家讲的是美食杰项目的美食详情页的主要功能和具体样式,希望我的代码能够帮助到你,也希望你能够看懂有所收获 具体样 ...

  6. Django电商项目(六)商品详情页、列表页分页、商品搜索

    Django电商项目 商品详情页 商品列表页 商品搜索 全文检索 安装和配置 索引文件生成 全文检索的使用 改变分词方式 商品详情页 新建detail.html {% extends 'base_de ...

  7. Vue项目构造页面布局

    这些都是我根据B站winWeb前端分享的个人空间_哔哩哔哩_Bilibili 的视频再自己动手进行实践的 Element plus 提供了很多页面的布局,Element plus 为了方便开发人员使用 ...

  8. php商品详情显示页面代码,商品详情页是怎么生成的?

    个人理解,有两种形式: 1.从后端开发的角度来看,一般来说,某个商品详情页后端代码一般是这样的 // Action (C) public class Product{ //商品详情页方法 functi ...

  9. 《前端框架开发技术》HTML+CSS+JavaScript (站酷静态页面官网7页)

    ⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | 公司官网网站 | 企业官网 | 酒店官网 | 等网站的设计与制 ...

最新文章

  1. C/C++难题的高赞回答「中文版」,帮你整理好了
  2. 滨海宣传员——青龙羊毛
  3. python语言特点有哪些-Python是什么?Python有什么特点?
  4. myeclipse创建项目 我们的第一个代码
  5. Qt入门(六)——抽奖系统的实现
  6. Oracle之rollUp函数
  7. 走进音视频的世界——新一代开源编解码器AV1
  8. 前端工程师薪资差距可达7.3倍!4月程序员薪资统计出炉,速看!
  9. 密码学-密钥管理与分发
  10. linux shell fflush,強制shell腳本fflush
  11. js eq()选择器的使用
  12. GPU渲染管线与可编程着色器
  13. 移动端适配:font-size设置方案的理解(浏览器调试移动端网页工具使用)
  14. STM32F407配置PLLI2SCLK实现特定50MHz时钟驱动83848
  15. BRL_CAD 教程
  16. 郭敬明最经典的45句话
  17. 北理工计算机2020学硕录取,北京理工大学2020硕士研究生拟录取名单
  18. 前端HTMLtable标签的属性和使用
  19. 乌班图安装出现无法获取锁解决
  20. unity ulua基础(ulua介绍,lua与C#互相调用)

热门文章

  1. 内存数据库-H2简介与实践
  2. 系统安装部署系列教程(二):硬盘安装方式安装系统
  3. HBuilderX发布小程序打不开微信小程序开发工具
  4. 快速理解论文主旨框架:论文十问法
  5. 淘宝宝贝的标题,到底要如何优化,不妨进来看看,也许对你有帮助
  6. Linux、git和github的故事
  7. 2021-05-14 linux下用root 登录ftp连接
  8. 《强化学习与最优控制》学习笔记(一):确定性动态规划和随机性动态规划
  9. 全球案例 | 一家有着百年历史的航空公司如何扩展和转型,推动航空业创新
  10. 微信小程序cover-image手机上不显示问题