mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-03-13 18:58:53 +01:00
Back button to quit selection mode on android
This commit is contained in:
parent
cb5238d388
commit
a68c7cdd8b
1 changed files with 22 additions and 2 deletions
|
@ -55,8 +55,9 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> {
|
|||
double mainAxisSpacing = 0,
|
||||
ValueChanged<double?>? onMaxExtentChanged,
|
||||
}) {
|
||||
final Widget content;
|
||||
if (onMaxExtentChanged != null) {
|
||||
return MeasurableItemList(
|
||||
content = MeasurableItemList(
|
||||
key: _listKey,
|
||||
maxCrossAxisExtent: maxCrossAxisExtent,
|
||||
itemCount: _items.length,
|
||||
|
@ -66,7 +67,7 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> {
|
|||
onMaxExtentChanged: onMaxExtentChanged,
|
||||
);
|
||||
} else {
|
||||
return SliverStaggeredGrid.extentBuilder(
|
||||
content = SliverStaggeredGrid.extentBuilder(
|
||||
maxCrossAxisExtent: maxCrossAxisExtent,
|
||||
itemCount: _items.length,
|
||||
itemBuilder: _buildItem,
|
||||
|
@ -74,6 +75,14 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> {
|
|||
mainAxisSpacing: mainAxisSpacing,
|
||||
);
|
||||
}
|
||||
if (platform_k.isAndroid) {
|
||||
return WillPopScope(
|
||||
onWillPop: _onBackButton,
|
||||
child: content,
|
||||
);
|
||||
} else {
|
||||
return content;
|
||||
}
|
||||
}
|
||||
|
||||
@protected
|
||||
|
@ -202,6 +211,17 @@ mixin SelectableItemStreamListMixin<T extends StatefulWidget> on State<T> {
|
|||
}
|
||||
}
|
||||
|
||||
Future<bool> _onBackButton() async {
|
||||
if (!isSelectionMode) {
|
||||
return true;
|
||||
} else {
|
||||
setState(() {
|
||||
clearSelectedItems();
|
||||
});
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// Map selected items to the new item list
|
||||
void _transformSelectedItems() {
|
||||
// TODO too slow!
|
||||
|
|
Loading…
Reference in a new issue