如何在每行GridView中设置背景图像

时间:2018-03-28 03:07:15

标签: dart flutter

我使用Gridview显示具有crossAxisCount的项目,如何设置每行的背景图像 我想这样做

enter image description here

谢谢大家

1 个答案:

答案 0 :(得分:1)

我可以建议两种中等简单的方法,但我现在必须让你自己实施。

这取决于您想要展示多少本书,以及您是否确切知道每个书架要展示多少本书。

如果您决定每行需要一定数量的项目(比如5本书),我相信最简单的解决方案是使用ListView,ListView中的每个项目都是DecorativeBox(或容器)。此项目将具有图像背景,即货架,以及包含5本书的行。

对于大量的书籍来说,这应该是相当有效的,因为它应该一次只构造每一行。缺点是您需要确定每行的书籍数量,并且可能需要在横向或窄纵横比时绘制单独的代码(或者至少选择每行多少本书,并且仅在您需要横向时)。 (请注意,您可以获得屏幕宽度,并可以根据该数据确定每行的书数。)

另一种方法是使用Scrollable,Stack和Wrap。你将Stack放在Scrollable中,堆栈将有两层 - 背景和项目。背景必须知道如何根据其高度绘制 - 您可以使用BoxDecoration与DecorationImage并重复。 Wrap将包含所有图像。

有几件我不是100%肯定的事情,比如堆栈是否会处理调整大小的问题。但我认为这会奏效。专家将是它将处理屏幕旋转&不同的宽高比就好了,但可以说它不会很好地处理大量的书籍。

还有第三个选项,但它变得更加复杂(尽管客观上这是最好的方法) - 使用CustomScrollView和/或Slivers。我甚至不完全确定我会怎么做,但these是文档。