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

View file

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

View file

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