album: restored integer column count

This commit is contained in:
Thibault Deckers 2020-03-05 16:20:24 +09:00
parent 164ac3a144
commit c454764850
4 changed files with 8 additions and 9 deletions

View file

@ -11,7 +11,7 @@ import 'package:flutter_sticky_header/flutter_sticky_header.dart';
class GridScaleGestureDetector extends StatefulWidget { class GridScaleGestureDetector extends StatefulWidget {
final GlobalKey scrollableKey; final GlobalKey scrollableKey;
final ValueNotifier<double> columnCountNotifier; final ValueNotifier<int> columnCountNotifier;
final Widget child; final Widget child;
const GridScaleGestureDetector({ const GridScaleGestureDetector({
@ -25,14 +25,14 @@ class GridScaleGestureDetector extends StatefulWidget {
} }
class _GridScaleGestureDetectorState extends State<GridScaleGestureDetector> { class _GridScaleGestureDetectorState extends State<GridScaleGestureDetector> {
double _start; int _start;
ValueNotifier<double> _scaledCountNotifier; ValueNotifier<double> _scaledCountNotifier;
OverlayEntry _overlayEntry; OverlayEntry _overlayEntry;
ThumbnailMetadata _metadata; ThumbnailMetadata _metadata;
RenderSliver _renderSliver; RenderSliver _renderSliver;
RenderViewport _renderViewport; RenderViewport _renderViewport;
ValueNotifier<double> get countNotifier => widget.columnCountNotifier; ValueNotifier<int> get countNotifier => widget.columnCountNotifier;
static const columnCountMin = 2.0; static const columnCountMin = 2.0;
static const columnCountMax = 8.0; static const columnCountMax = 8.0;
@ -55,7 +55,7 @@ class _GridScaleGestureDetectorState extends State<GridScaleGestureDetector> {
_renderViewport = firstOf<RenderViewport>(result); _renderViewport = firstOf<RenderViewport>(result);
_metadata = renderMetaData.metaData; _metadata = renderMetaData.metaData;
_start = countNotifier.value; _start = countNotifier.value;
_scaledCountNotifier = ValueNotifier(_start); _scaledCountNotifier = ValueNotifier(_start.toDouble());
final gridWidth = scrollableBox.size.width; final gridWidth = scrollableBox.size.width;
final halfExtent = gridWidth / _start / 2; final halfExtent = gridWidth / _start / 2;
@ -84,7 +84,7 @@ class _GridScaleGestureDetectorState extends State<GridScaleGestureDetector> {
} }
if (_scaledCountNotifier == null) return; if (_scaledCountNotifier == null) return;
final newColumnCount = _scaledCountNotifier.value.roundToDouble(); final newColumnCount = _scaledCountNotifier.value.round();
_scaledCountNotifier = null; _scaledCountNotifier = null;
if (newColumnCount == countNotifier.value) return; if (newColumnCount == countNotifier.value) return;

View file

@ -1,7 +1,6 @@
import 'package:aves/model/image_collection.dart'; import 'package:aves/model/image_collection.dart';
import 'package:aves/model/image_entry.dart'; import 'package:aves/model/image_entry.dart';
import 'package:aves/widgets/album/sections.dart'; import 'package:aves/widgets/album/sections.dart';
import 'package:aves/widgets/album/sliver_transition_grid_delegate.dart';
import 'package:aves/widgets/album/thumbnail.dart'; import 'package:aves/widgets/album/thumbnail.dart';
import 'package:aves/widgets/album/transparent_material_page_route.dart'; import 'package:aves/widgets/album/transparent_material_page_route.dart';
import 'package:aves/widgets/common/icons.dart'; import 'package:aves/widgets/common/icons.dart';
@ -13,7 +12,7 @@ import 'package:provider/provider.dart';
class SectionSliver extends StatelessWidget { class SectionSliver extends StatelessWidget {
final ImageCollection collection; final ImageCollection collection;
final dynamic sectionKey; final dynamic sectionKey;
final double columnCount; final int columnCount;
const SectionSliver({ const SectionSliver({
Key key, Key key,
@ -54,7 +53,7 @@ class SectionSliver extends StatelessWidget {
addAutomaticKeepAlives: false, addAutomaticKeepAlives: false,
addRepaintBoundaries: true, addRepaintBoundaries: true,
), ),
gridDelegate: SliverTransitionGridDelegateWithCrossAxisCount( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: columnCount, crossAxisCount: columnCount,
), ),
); );

View file

@ -8,7 +8,7 @@ import 'package:provider/provider.dart';
class ThumbnailCollection extends StatelessWidget { class ThumbnailCollection extends StatelessWidget {
final Widget appBar; final Widget appBar;
final ScrollController _scrollController = ScrollController(); final ScrollController _scrollController = ScrollController();
final ValueNotifier<double> _columnCountNotifier = ValueNotifier(4); final ValueNotifier<int> _columnCountNotifier = ValueNotifier(4);
final GlobalKey _scrollableKey = GlobalKey(); final GlobalKey _scrollableKey = GlobalKey();
ThumbnailCollection({ ThumbnailCollection({