assetsGridBuilder method

Widget assetsGridBuilder(
  1. BuildContext context
)

The main grid view builder for assets. 主要的资源查看网格部件

Implementation

Widget assetsGridBuilder(BuildContext context) {
  return ColoredBox(
    color: theme.canvasColor,
    child: Selector<AssetPickerProvider<A, P>, List<A>>(
      selector: (_, AssetPickerProvider<A, P> provider) =>
          provider.currentAssets,
      builder: (_, List<A> currentAssets, __) => CustomScrollView(
        controller: gridScrollController,
        slivers: <Widget>[
          if (isAppleOS)
            SliverToBoxAdapter(
              child: SizedBox(
                height: Screens.topSafeHeight + kToolbarHeight,
              ),
            ),
          SliverGrid(
            delegate: SliverChildBuilderDelegate(
              (_, int index) => Builder(
                builder: (BuildContext c) => assetGridItemBuilder(
                  c,
                  index,
                  currentAssets,
                ),
              ),
              childCount: assetsGridItemCount(_, currentAssets),
              findChildIndexCallback: (Key? key) {
                if (key is ValueKey<String>) {
                  return findChildIndexBuilder(
                    key.value,
                    currentAssets,
                  );
                }
                return null;
              },
            ),
            gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
              crossAxisCount: gridCount,
              mainAxisSpacing: itemSpacing,
              crossAxisSpacing: itemSpacing,
            ),
          ),
          if (isAppleOS)
            SliverToBoxAdapter(
              child: SizedBox(
                height: Screens.bottomSafeHeight + bottomActionBarHeight,
              ),
            ),
        ],
      ),
    ),
  );
}