Flutter Hexagon插件使用时修改背景空白区域颜色的方法咨询
Flutter Hexagon插件使用时修改背景空白区域颜色的方法咨询
嗨,当然可以修改这个空白区域的颜色啦!你看到的白色其实是Hexagon网格所在父容器的背景色,插件本身并没有固定这个颜色,咱们只需要给网格套个带背景色的容器就行,有两种简单的实现方式:
方法一:在使用HexMediaGrid的地方添加背景容器
直接给HexMediaGrid外面包裹一个Container,设置你想要的背景颜色就行,这样可以灵活控制不同页面的背景色:
const SizedBox(height: 10), // 新增带背景色的Container Container( color: Colors.deepPurple, // 替换成你想要的颜色 child: const HexMediaGrid(), ), const SizedBox(height: 30),
方法二:在HexMediaGrid组件内部设置统一背景
如果希望所有使用HexMediaGrid的地方都用同一个背景色,可以直接在组件的build方法里给网格套上背景容器:
修改hex_media_grid.dart里的build方法:
@override Widget build(BuildContext context) { final List<String> media = List.generate( 20, (index) => 'assets/images/c${(index % 4) + 1}.jpg', )..shuffle(Random()); // 用带背景色的Container包裹整个Hexagon网格 return Container( color: Colors.deepPurple, // 设置统一背景色 padding: const EdgeInsets.symmetric(horizontal: 12.0), child: HexagonOffsetGrid.oddFlat( columns: 4, rows: 5, buildTile: (col, row) { int index = row * 4 + col; if (index >= media.length) { return HexagonWidgetBuilder(child: SizedBox.shrink()); } return HexagonWidgetBuilder(child: HexTile(imagePath: media[index])); }, ), ); }
原理其实很简单:HexagonOffsetGrid本身是透明的,所以六边形之间的空白区域会显示它父级容器的背景色,之前显示白色是因为你的页面或父容器默认背景是白色,只要给网格的直接父容器设置背景色,就能替换掉这个白色啦~
内容来源于stack exchange
相关产品推荐
相关产品推荐

