selectButton method

  1. @override
Widget selectButton(
  1. BuildContext context
)
override

Select button. 选择按钮

Implementation

@override
Widget selectButton(BuildContext context) {
  return Row(
    children: <Widget>[
      StreamBuilder<int>(
        initialData: currentIndex,
        stream: pageStreamController.stream,
        builder: (BuildContext _, AsyncSnapshot<int> snapshot) {
          return ChangeNotifierProvider<
              AssetPickerViewerProvider<AssetEntity>>.value(
            value: provider!,
            child: Selector<AssetPickerViewerProvider<AssetEntity>,
                List<AssetEntity>>(
              selector: (
                _,
                AssetPickerViewerProvider<AssetEntity> p,
              ) =>
                  p.currentlySelectedAssets,
              builder: (
                BuildContext c,
                List<AssetEntity> currentlySelectedAssets,
                __,
              ) {
                final AssetEntity asset = previewAssets.elementAt(
                  snapshot.data!,
                );
                final bool isSelected = currentlySelectedAssets.contains(
                  asset,
                );
                if (isAppleOS) {
                  return _appleOSSelectButton(c, isSelected, asset);
                }
                return _androidSelectButton(c, isSelected, asset);
              },
            ),
          );
        },
      ),
      if (!isAppleOS)
        ScaleText(
          Constants.textDelegate.select,
          style: const TextStyle(fontSize: 17, height: 1),
        ),
    ],
  );
}