@@ -131,6 +131,10 @@ class AssetPicker extends StatelessWidget {
131
131
/// 当前平台是否苹果系列系统 (iOS & MacOS)
132
132
bool get isAppleOS => Platform .isIOS || Platform .isMacOS;
133
133
134
+ /// Whether the picker is under the single asset mode.
135
+ /// 选择器是否为单选模式
136
+ bool get isSingleAssetMode => provider.maxAssets == 1 ;
137
+
134
138
/// Space between asset item widget.
135
139
/// 资源部件之间的间隔
136
140
double get itemSpacing => 2.0 ;
@@ -459,7 +463,7 @@ class AssetPicker extends StatelessWidget {
459
463
highlightElevation: 0.0 ,
460
464
hoverElevation: 0.0 ,
461
465
child: Text (
462
- provider.isSelectedNotEmpty
466
+ provider.isSelectedNotEmpty && ! isSingleAssetMode
463
467
? '${Constants .textDelegate .confirm }'
464
468
'(${provider .selectedAssets .length }/${provider .maxAssets })'
465
469
: Constants .textDelegate.confirm,
@@ -618,10 +622,7 @@ class AssetPicker extends StatelessWidget {
618
622
619
623
/// Indicator for asset selected status.
620
624
/// 资源是否已选的指示器
621
- Widget _selectIndicator (
622
- AssetEntity asset,
623
- List <AssetEntity > selectedAssets,
624
- ) {
625
+ Widget _selectIndicator (AssetEntity asset) {
625
626
return Selector <AssetPickerProvider , List <AssetEntity >>(
626
627
selector: (BuildContext _, AssetPickerProvider provider) =>
627
628
provider.selectedAssets,
@@ -636,6 +637,9 @@ class AssetPicker extends StatelessWidget {
636
637
if (selected) {
637
638
provider.unSelectAsset (asset);
638
639
} else {
640
+ if (isSingleAssetMode) {
641
+ provider.selectedAssets.clear ();
642
+ }
639
643
provider.selectAsset (asset);
640
644
}
641
645
},
@@ -655,15 +659,16 @@ class AssetPicker extends StatelessWidget {
655
659
duration: switchingPathDuration,
656
660
reverseDuration: switchingPathDuration,
657
661
child: selected
658
- ? Text (
659
- '${selectedAssets .indexOf (asset ) + 1 }' ,
660
- style: TextStyle (
661
- color: Colors .white,
662
- fontSize: isAppleOS ? 16.0 : 14.0 ,
663
- fontWeight:
664
- isAppleOS ? FontWeight .w600 : FontWeight .normal,
665
- ),
666
- )
662
+ ? isSingleAssetMode
663
+ ? Icon (Icons .check, size: 18.0 )
664
+ : Text (
665
+ '${selectedAssets .indexOf (asset ) + 1 }' ,
666
+ style: TextStyle (
667
+ fontSize: isAppleOS ? 16.0 : 14.0 ,
668
+ fontWeight:
669
+ isAppleOS ? FontWeight .w600 : FontWeight .bold,
670
+ ),
671
+ )
667
672
: const SizedBox .shrink (),
668
673
),
669
674
),
@@ -976,10 +981,11 @@ class AssetPicker extends StatelessWidget {
976
981
child: Stack (
977
982
children: < Widget > [
978
983
Positioned .fill (child: assetsGrid (context)),
979
- PositionedDirectional (
980
- bottom: 0.0 ,
981
- child: bottomActionBar (context),
982
- ),
984
+ if (! isSingleAssetMode)
985
+ PositionedDirectional (
986
+ bottom: 0.0 ,
987
+ child: bottomActionBar (context),
988
+ ),
983
989
],
984
990
),
985
991
),
@@ -1032,7 +1038,7 @@ class AssetPicker extends StatelessWidget {
1032
1038
child: Column (
1033
1039
children: < Widget > [
1034
1040
Expanded (child: assetsGrid (context)),
1035
- bottomActionBar (context),
1041
+ if ( ! isSingleAssetMode) bottomActionBar (context),
1036
1042
],
1037
1043
),
1038
1044
),
0 commit comments