assetsGridBuilder method
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,
),
),
],
),
),
);
}