flutter - Flutter Gridview水平滚动
问题描述
我正在开发flutter web,我希望我的gridview滚动方向水平但是当我添加scrolldirection: Axix.horizontal
它时旋转了gridview。我知道要让它变得简单我可以使用ListView
,但它需要太多的代码才能使其在网络上响应。我只希望 gridView 本身crossAxisCount
按屏幕宽度管理其响应。所以我需要有关如何使 GridView 滚动方向水平的帮助。谢谢
int gridCrossAxisCount;
if (size > 1600) {
gridCrossAxisCount = 4;
} else if (size > 1300) {
gridCrossAxisCount = 3;
} else if (size > 800) {
gridCrossAxisCount = 2;
} else {
gridCrossAxisCount = 1;
}
Container(
width: double.infinity,
height: 300,
child: GridView.count(
// scrollDirection: Axis.horizontal,
physics: ScrollPhysics(),
shrinkWrap: true,
primary: true,
padding: EdgeInsets.only(top: 15.0),
crossAxisCount: gridCrossAxisCount, //Screensize grid count
childAspectRatio: 0.60, //1.0
mainAxisSpacing: 0.2, //1.0
crossAxisSpacing: 4.0, //1.0
children: [
Container(
height: 200,
width: 200,
color: Colors.green,
),
Container(
height: 200,
width: 200,
color: Colors.red,
),
Container(
height: 200,
width: 200,
color: Colors.orange,
),
Container(
height: 200,
width: 200,
color: Colors.indigo,
),
],
),
),
解决方案
您可以在 GridView 旋转时包含屏幕截图吗?
我认为您的代码在 Axis.horizontal 上运行良好。问题可能出在计算 gridCrossAxisCount/ 子项数量时的逻辑。
当 Axis.horizontal 打开时,mainAxis 现在将是水平的,而 crossAxis 将是垂直的。
因此,如果axisCount为1,那么所有项目将仅显示在1行中,但如果它是4,它们将显示在4行中,在您的示例中有4个孩子不足以导致视口外溢出并启用滚动.
推荐阅读
- c - 当我将字符串文字分配给非常量指针时,为什么我的 C 编译器不发出警告?
- c++ - 如何在 Windows 上获取物理屏幕尺寸(我得到奇怪的值)?
- websphere-liberty - 类加载器问题
- javascript - 在javascript中组合对象数组以形成一个新的
- java - 将任意类型安全配置写入 hocon 文件的标准化方法?
- python-3.x - 导入 scipy.optimize 时出现问题。(Windows10 64b, Python 3.7)
- vba - 如何将列表框选择信息添加到子表单/表?
- assembly - 汇编指令与文本作为处理器读取的二进制流,分隔符问题
- python - Pyinstaller 文件大
- powershell - 当 PSCustomObject 按预期返回时,Start-Job 未正确返回自定义类对象