album: restored integer column count
This commit is contained in:
parent
164ac3a144
commit
c454764850
4 changed files with 8 additions and 9 deletions
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -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({
|
||||||
|
|
Loading…
Reference in a new issue