ProductContentFirst.dart

import 'package:flutter/material.dart';
import '../../widget/JdButton.dart';
import '../../services/ScreenAdaper.dart'; class ProductContentFirst extends StatefulWidget {
ProductContentFirst({Key key}) : super(key: key); _ProductContentFirstState createState() => _ProductContentFirstState();
} class _ProductContentFirstState extends State<ProductContentFirst> {
_attrBottomSheet() {
showModalBottomSheet(
context: context,
builder: (context) {
return GestureDetector(
//Gesture:手势 Detector:探测器
onTap: () {
return false;
},
child: Stack(
children: <Widget>[
Container(
padding: EdgeInsets.all(ScreenAdaper.width()),
child: ListView(
children: <Widget>[
Column(
children: <Widget>[
Wrap(
children: <Widget>[
Container(
width: ScreenAdaper.width(),
child: Padding(
padding: EdgeInsets.only(
top: ScreenAdaper.height()),
child: Text('颜色',
style: TextStyle(
fontWeight: FontWeight.bold)),
),
),
Container(
width: ScreenAdaper.width(),
child: Wrap(
children: <Widget>[
Container(
margin: EdgeInsets.all(),
child: Chip(
label: Text('白色'),
padding: EdgeInsets.all(),
),
),
Container(
margin: EdgeInsets.all(),
child: Chip(
label: Text('白色'),
padding: EdgeInsets.all(),
),
),
Container(
margin: EdgeInsets.all(),
child: Chip(
label: Text('白色'),
padding: EdgeInsets.all(),
),
),
],
),
)
],
),
],
)
],
),
),
Positioned(
bottom: ,
width: ScreenAdaper.width(),
height: ScreenAdaper.height(),
child: Row(
children: <Widget>[
Container(
width: ScreenAdaper.width(),
height: ScreenAdaper.height(),
child: Row(
children: <Widget>[
Expanded(
flex: ,
child: Container(
margin: EdgeInsets.fromLTRB(,,,),
child: JdButton(
color: Color.fromRGBO(, , , 0.9),
text: "加入购物车",
cb: () {
print('加入购物车');
},
),
),
),
Expanded(
flex: ,
child: Container(
margin: EdgeInsets.fromLTRB(,,,),
child: JdButton(
color: Color.fromRGBO(, , , 0.9),
text: "立即购物",
cb: () {
print('立即购物');
},
),
)
)
],
))
],
),
)
],
));
});
} @override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.all(),
child: ListView(
children: <Widget>[
AspectRatio(
aspectRatio: / ,
child: Image.network(
"https://www.itying.com/images/flutter/p1.jpg",
fit: BoxFit.cover,
)),
Container(
padding: EdgeInsets.only(top: ),
child: Text(
"联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad",
style: TextStyle(
color: Colors.black87, fontSize: ScreenAdaper.size())),
),
Container(
padding: EdgeInsets.only(top: ),
child: Text(
"联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad",
style: TextStyle(
color: Colors.black54, fontSize: ScreenAdaper.size())),
),
Container(
padding: EdgeInsets.only(top: ),
child: Row(
children: <Widget>[
Expanded(
flex: ,
child: Row(
children: <Widget>[
Text('特价'),
Text('¥28',
style: TextStyle(
color: Colors.red,
fontSize: ScreenAdaper.size()))
],
),
),
Expanded(
flex: ,
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Text('原价'),
Text('¥50',
style: TextStyle(
color: Colors.black38,
fontSize: ScreenAdaper.size(),
decoration: TextDecoration.lineThrough))
],
),
)
],
),
),
//筛选:
Container(
margin: EdgeInsets.only(top: ),
height: ScreenAdaper.height(),
child: InkWell(
onTap: () {
_attrBottomSheet();
},
child: Row(
children: <Widget>[
Text('已选', style: TextStyle(fontWeight: FontWeight.bold)),
Text('115,黑色')
],
),
)),
Divider(),
Container(
height: ScreenAdaper.height(),
child: Row(
children: <Widget>[
Text('运费', style: TextStyle(fontWeight: FontWeight.bold)),
Text('免运费')
],
),
),
Divider()
],
));
}
}

20 Flutter仿京东商城项目 商品详情 底部弹出筛选属性 以及筛选属性页面布局的更多相关文章

  1. 19 Flutter仿京东商城项目 商品详情 底部浮动导航布局 商品页面布局

    效果: widget/JdButton.dart import 'package:flutter/material.dart'; import '../services/ScreenAdaper.da ...

  2. 18 Flutter仿京东商城项目 商品详情顶部tab切换 顶部下拉菜单 底部浮动导航

    ProductContent.dart import 'package:flutter/material.dart'; import '../services/ScreenAdaper.dart'; ...

  3. 21 Flutter仿京东商城项目 商品详情 请求接口渲染数据 商品属性数据渲染

    加群452892873 下载对应21可文件,运行方法,建好项目,直接替换lib目录,在往pubspec.yaml添加上一下扩展.   cupertino_icons: ^0.1.2   flutter ...

  4. 01-02 Flutter仿京东商城项目 功能分析、底部导航Tab切换以及路由配置、架构搭建:(Flutter仿京东商城项目 首页布局以及不同终端屏幕适配方案)

    Flutter和Dart交流学习群:交流群:452892873 01Flutter仿京东商城项目 功能分析.底部导航Tab切换以及路由配置.架构搭建 02Flutter仿京东商城项目 首页布局以及不同 ...

  5. 12 Flutter仿京东商城项目 商品列表页面请求数据、封装Loading Widget、上拉分页加载更多

    ProductList.dart import 'package:flutter/material.dart'; import '../services/ScreenAdaper.dart'; imp ...

  6. 13 Flutter仿京东商城项目 商品列表筛选以及上拉分页加载更多

    ProductList.dart import 'package:flutter/material.dart'; import '../services/ScreenAdaper.dart'; imp ...

  7. 11 Flutter仿京东商城项目 商品列表页面二级筛选导航布局

    ProductList.dart import 'package:flutter/material.dart'; import '../services/ScreenAdaper.dart'; imp ...

  8. 42 Flutter仿京东商城项目 修改默认收货地址 显示默认收货地址

    CheckOut.dart import 'package:flutter/material.dart'; import '../services/ScreenAdapter.dart'; impor ...

  9. 41 Flutter 仿京东商城项目签名验证 增加收货地址、显示收货地址 事件广播

    加群452892873 下载对应41课文件,运行方法,建好项目,直接替换lib目录 AddressAdd.dart import 'package:dio/dio.dart'; import 'pac ...

随机推荐

  1. SPI、I2C、I2S

    1. SPI总线 1.1 基础概念: 技术性能 SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构:支持多slave模式应用,一般仅支持单 ...

  2. YouTube下载方法

    复制要下载的视频的地址 打开此链接:https://y2mate.com/youtube/9wxePpNYShQ 如下图位置粘贴视频地址,然后选择想要的分辨率点击右面的“Download”进行下载即可

  3. Lucene简单了解和使用

    一,Lucene简介 1 . Lucene  是什么? Lucene 是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎, ...

  4. BM(Berlekamp-Massey)算法

    线性递推的题目区域赛里还是挺多的,还是有必要学一下 ~ BM(Berlekamp-Massey)算法 ~ 有一个$n$阶线性递推$f$,想要计算$f(m)$,有一种常用的办法是矩阵快速幂,复杂度是$O ...

  5. Python+requests r.json()获取的内容,控制台显示中文Unicode转为utf-8《九》

    在接口测试中,直接使用r.json()获取到的结果,难免会在结果中带有中文,但是在控制台的中文输出默认是Unicode编码,不能通过统一在设置中进行设置utf-8,因此为了在控制台更显而易见的显示出中 ...

  6. 关于webpack require.context() 的那点事

    先说 webpack里面有这么一招:使用require.context()方法来自动导入模块 官方文档有点深奥,老衲百度下拿了一段来直接使用,但是想看下它是如何运行的 本篇这里不会有太深入的研究,只是 ...

  7. 自己编写jQuery插件之表单验证

    自己编写jQuery插件之表单验证 吐个嘈先:最近状态不咋滴,真是什么都不想干,不想上班,做什么都没动力,觉得没意思.不想这样,不想这样,快让这种情绪消失吧,忽忽.... 表单验证在项目中用的还是比较 ...

  8. v-for为什么要加key,能用index作为key么

    前言 在vue中使用v-for时,一直有几个疑问: v-for为什么要加key 为什么有时候用index作为key会出错 带着这个疑问,结合各种博客和源码,终于有了点眉目. virtual dom 要 ...

  9. python基础-垃圾回收机制

    垃圾回收 Python中的垃圾回收是以引用计数为主,分代收集为辅.引用计数的缺陷是循环引用的问题. 引用计数 原理:当一个对象的引用被创建或者复制时,对象的引用计数加1:当一个对象的引用被销毁时,对象 ...

  10. 以8位并行数据为例确定crc-32的一般矩阵表示形式

    在进行数据校验时我们会使用到crc(循环冗余校验)校验的方式,例如在以太网通信网络中会对信息进行编码和校验,生成码采用的就是33位的 crc-32:x32+x26+x23+...+x2+x+1; (1 ...