Fork Me On Github

GridView、ListView

嵌套使用需要在子列表添加

shrinkWrap:true,    // 处理列表嵌套报错
physics: NeverScrollableScrollPhysics(),      // 处理子列表中滑动父级列表无法滑动

CustomScrollView

子项可以是列表或其他部件

如果是列表则使用 SliverListSliverFixedExtentListSliverGrid

如果是其他部件则必须使用 SliverToBoxAdapter

SliverListSliverFixedExtentList 的区别,如果知道高度 则推荐用 SliverFixedExtentList

例如

标题栏

SliverFixedExtentList(
    itemExtent: 50,                             // 是设置每一个子元素的高度
    delegate: SliverChildListDelegate(
        <Widget>[
            Container(
                color: Colors.white,
                height: 50,
                child: Center(
                    child: Text(title),
                ),
            )
        ],
    ),
)

两列商品类别

SliverGrid(
    gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
        crossAxisCount: 2,
        mainAxisSpacing: 1.0,
        crossAxisSpacing: 1.0,
        childAspectRatio: 0.7,
    ),
    delegate: SliverChildBuilderDelegate((BuildContext context, int index) {
        return ProductItem(
            item: data[index],
        );
    }, childCount: data.length),
),
点击查看全文
0 22 0