9-15【实战应用】底部卡片实现-2
设置child要显示的文字
把创建好的卡片都添加进去
首页调用
上面定义变量
loadData的时候对数据进行初始化
调用,并传入model
运行测试
并没有显示任何东西
并抛出了一些异常
SalesBox布局的约束有问题
因为代码是拿着之前subNav的代码改的,所以有些代码的地方需要修改。例如这的Expaned要删除掉。
图片分为这种大图和小图的形式,无论大图还是小图,宽度都占屏幕的二分之一。小图的高度占大图的2分之一。
所以我们要根据图片的大小来控制它的宽和高
彩蛋
获取屏幕的宽度。获取到了宽度除以2再减去5 ,这个5是减去的padding
_item方法再加一个参数,要知道它是不是大图
如果是大图就是129,高度,小图的话就是80的高度。
因为图片需要设置分割线,所以外层需要前天一个Container
设置装饰器
上面设置BorderSide。宽度和颜色
再来设置底边,如果是最后一个我们就设置,不是就不设置。
设置图片显示方式,撑满
这里把big参数传进去
再次运行测试
右边布局超出了边界的情况。第二行本来应该是小图,但是显示的高度还不一样。
修改代码
首先来看这里的小图为什么会有问题
是否是大图的参数传错了。这里应该用false
这行小图就解决了。但是右边还是溢出
溢出很有可能是图片的宽度出现了问题。也就是我们在算图片宽度的时候。因为我们左右边距的存在。
我们在首页的这里设置了左右的边距。
所以我们最后减去左右的边距,再减去中间的线。
在看效果 就好了。
回顾
最左边放了一个网络的图片
右边用container设置了圆角脚边的背景
里面放了这样一段文字
点击文字可以跳转到对应的活动页
彩蛋
就是如何获取屏幕的宽度
通过MediaQuery.of(context).size.width获取到宽度。
所有组件的高度加起来不能超过屏幕的宽度,不然就会弹出警告。
结束