Skip to content

Commit

Permalink
Merge pull request #18 from juliansteenbakker/flutter-v3
Browse files Browse the repository at this point in the history
imp: upgrade to flutter v3, apply new lint
  • Loading branch information
juliansteenbakker authored May 25, 2022
2 parents 577dd3a + 3446eee commit 95ff5d4
Show file tree
Hide file tree
Showing 25 changed files with 613 additions and 491 deletions.
2 changes: 1 addition & 1 deletion analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
include: package:flutter_lints/flutter.yaml
include: package:lint/analysis_options_package.yaml
2 changes: 1 addition & 1 deletion example/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
include: package:flutter_lints/flutter.yaml
include: package:lint/analysis_options.yaml
4 changes: 2 additions & 2 deletions example/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 31
compileSdkVersion 32

lintOptions {
disable 'InvalidPackage'
Expand All @@ -35,7 +35,7 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.yourcompany.example"
minSdkVersion 16
targetSdkVersion 31
targetSdkVersion 32
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
Expand Down
1 change: 0 additions & 1 deletion example/android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="example"
android:icon="@mipmap/ic_launcher"
android:allowBackup="false">
Expand Down
4 changes: 2 additions & 2 deletions example/android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Thu Dec 09 09:03:01 CET 2021
#Wed May 25 09:30:14 CEST 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
36 changes: 20 additions & 16 deletions example/lib/accordion_transformer.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import 'package:another_transformer_page_view/another_transformer_page_view.dart';
import 'package:example/buildin_transformers.dart';
import 'package:flutter/material.dart';

import 'package:another_transformer_page_view/another_transformer_page_view.dart';

void main() => runApp(const MyApp());
List<Color> list = [Colors.yellow, Colors.green, Colors.blue];

Expand Down Expand Up @@ -42,22 +41,27 @@ class TestWidget extends StatelessWidget {

@override
Widget build(BuildContext context) {
var list = <Color>[Colors.redAccent, Colors.blueAccent, Colors.greenAccent];
final list = <Color>[
Colors.redAccent,
Colors.blueAccent,
Colors.greenAccent
];
return TransformerPageView(
loop: true,
transformer: AccordionTransformer(),
itemBuilder: (BuildContext context, int index) {
return Container(
color: list[index % list.length],
child: Center(
child: Text(
'$index',
style: const TextStyle(fontSize: 80.0, color: Colors.white),
),
loop: true,
transformer: AccordionTransformer(),
itemBuilder: (BuildContext context, int index) {
return Container(
color: list[index % list.length],
child: Center(
child: Text(
'$index',
style: const TextStyle(fontSize: 80.0, color: Colors.white),
),
);
},
itemCount: 3);
),
);
},
itemCount: 3,
);
}
}

Expand Down
50 changes: 25 additions & 25 deletions example/lib/buildin_transformers.dart
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import 'package:flutter/material.dart';
import 'package:another_transformer_page_view/another_transformer_page_view.dart';
import 'dart:math' as math;

import 'package:another_transformer_page_view/another_transformer_page_view.dart';
import 'package:flutter/material.dart';
import 'package:vector_math/vector_math_64.dart';

class AccordionTransformer extends PageTransformer {
@override
Widget transform(Widget child, TransformInfo info) {
var position = info.position!;
final position = info.position!;
if (position < 0.0) {
return Transform.scale(
scale: 1 + position,
Expand All @@ -27,9 +27,9 @@ class AccordionTransformer extends PageTransformer {
class ThreeDTransformer extends PageTransformer {
@override
Widget transform(Widget child, TransformInfo info) {
var position = info.position!;
var height = info.height!;
var width = info.width;
final position = info.position!;
final height = info.height!;
final width = info.width;
double? pivotX = 0.0;
if (position < 0 && position >= -1) {
// left scrolling
Expand All @@ -48,8 +48,8 @@ class ZoomInPageTransformer extends PageTransformer {
static const double zoomMax = 0.5;
@override
Widget transform(Widget child, TransformInfo info) {
var position = info.position!;
var width = info.width;
final position = info.position!;
final width = info.width;
if (position > 0 && position <= 1) {
return Transform.translate(
offset: Offset(-width! * position, 0.0),
Expand All @@ -69,9 +69,9 @@ class ZoomOutPageTransformer extends PageTransformer {

@override
Widget transform(Widget child, TransformInfo info) {
var position = info.position!;
var pageWidth = info.width;
var pageHeight = info.height;
final position = info.position!;
final pageWidth = info.width;
final pageHeight = info.height;

if (position < -1) {
// [-Infinity,-1)
Expand All @@ -81,17 +81,17 @@ class ZoomOutPageTransformer extends PageTransformer {
// [-1,1]
// Modify the default slide transition to
// shrink the page as well
var scaleFactor = math.max(minScale, 1 - position.abs());
var vertMargin = pageHeight! * (1 - scaleFactor) / 2;
var horzMargin = pageWidth! * (1 - scaleFactor) / 2;
final scaleFactor = math.max(minScale, 1 - position.abs());
final vertMargin = pageHeight! * (1 - scaleFactor) / 2;
final horzMargin = pageWidth! * (1 - scaleFactor) / 2;
double dx;
if (position < 0) {
dx = (horzMargin - vertMargin / 2);
dx = horzMargin - vertMargin / 2;
} else {
dx = (-horzMargin + vertMargin / 2);
dx = -horzMargin + vertMargin / 2;
}
// Scale the page down (between MIN_SCALE and 1)
var opacity =
final opacity =
minAlpha + (scaleFactor - minScale) / (1 - minScale) * (1 - minAlpha);

return Opacity(
Expand Down Expand Up @@ -119,12 +119,12 @@ class DepthPageTransformer extends PageTransformer {

@override
Widget transform(Widget child, TransformInfo info) {
var position = info.position!;
final position = info.position!;
if (position <= 0) {
return Opacity(
opacity: 1.0,
child: Transform.translate(
offset: const Offset(0.0, 0.0),
offset: Offset.zero,
child: Transform.scale(
scale: 1.0,
child: child,
Expand All @@ -134,7 +134,7 @@ class DepthPageTransformer extends PageTransformer {
} else if (position <= 1) {
const minScale = 0.75;
// Scale the page down (between minScale and 1)
var scaleFactor = minScale + (1 - minScale) * (1 - position);
final scaleFactor = minScale + (1 - minScale) * (1 - position);

return Opacity(
opacity: 1.0 - position,
Expand Down Expand Up @@ -162,11 +162,11 @@ class ScaleAndFadeTransformer extends PageTransformer {

@override
Widget transform(Widget child, TransformInfo info) {
var position = info.position!;
var scaleFactor = (1 - position.abs()) * (1 - _scale);
var fadeFactor = (1 - position.abs()) * (1 - _fade);
var opacity = _fade + fadeFactor;
var scale = _scale + scaleFactor;
final position = info.position!;
final scaleFactor = (1 - position.abs()) * (1 - _scale);
final fadeFactor = (1 - position.abs()) * (1 - _fade);
final opacity = _fade + fadeFactor;
final scale = _scale + scaleFactor;
return Opacity(
opacity: opacity,
child: Transform.scale(
Expand Down
47 changes: 26 additions & 21 deletions example/lib/cache_pageview.dart
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
import 'dart:math';

import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
import 'dart:math';

class MyViewPort extends RenderSliverFillViewport {
int? itemCount;

MyViewPort(
{required RenderSliverBoxChildManager childManager,
double viewportFraction = 1.0,
this.itemCount})
: super(childManager: childManager, viewportFraction: viewportFraction);
MyViewPort({
required RenderSliverBoxChildManager childManager,
double viewportFraction = 1.0,
this.itemCount,
}) : super(childManager: childManager, viewportFraction: viewportFraction);

@override
int getMaxChildIndexForScrollOffset(double scrollOffset, double itemExtent) {
return min(
super.getMaxChildIndexForScrollOffset(scrollOffset, itemExtent) + 2,
itemCount! - 1);
super.getMaxChildIndexForScrollOffset(scrollOffset, itemExtent) + 2,
itemCount! - 1,
);
}

@override
Expand All @@ -29,12 +31,12 @@ class MyViewPort extends RenderSliverFillViewport {
class MySliverFillViewport extends SliverMultiBoxAdaptorWidget {
/// Creates a sliver whose box children that each fill the viewport.
//
const MySliverFillViewport(
{Key? key,
required SliverChildDelegate delegate,
this.viewportFraction = 1.0,
this.itemCount})
: assert(viewportFraction > 0.0),
const MySliverFillViewport({
Key? key,
required SliverChildDelegate delegate,
this.viewportFraction = 1.0,
this.itemCount,
}) : assert(viewportFraction > 0.0),
super(key: key, delegate: delegate);

/// The fraction of the viewport that each child should fill in the main axis.
Expand All @@ -51,9 +53,10 @@ class MySliverFillViewport extends SliverMultiBoxAdaptorWidget {
final SliverMultiBoxAdaptorElement element =
context as SliverMultiBoxAdaptorElement;
return MyViewPort(
childManager: element,
itemCount: itemCount,
viewportFraction: viewportFraction);
childManager: element,
itemCount: itemCount,
viewportFraction: viewportFraction,
);
}

@override
Expand All @@ -63,7 +66,9 @@ class MySliverFillViewport extends SliverMultiBoxAdaptorWidget {

@override
void updateRenderObject(
BuildContext context, RenderSliverFillViewport renderObject) {
BuildContext context,
RenderSliverFillViewport renderObject,
) {
renderObject.viewportFraction = viewportFraction;
}
}
Expand Down Expand Up @@ -96,9 +101,9 @@ class MyPageView extends StatelessWidget {
offset: position,
slivers: <Widget>[
MySliverFillViewport(
viewportFraction: 1.0,
itemCount: 10,
delegate: childrenDelegate),
itemCount: 10,
delegate: childrenDelegate,
),
],
);
},
Expand Down
36 changes: 20 additions & 16 deletions example/lib/depth_page_transformer.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import 'package:another_transformer_page_view/another_transformer_page_view.dart';
import 'package:example/buildin_transformers.dart';
import 'package:flutter/material.dart';

import 'package:another_transformer_page_view/another_transformer_page_view.dart';

void main() => runApp(const MyApp());
List<Color> list = [Colors.yellow, Colors.green, Colors.blue];

Expand Down Expand Up @@ -42,22 +41,27 @@ class TestWidget extends StatelessWidget {

@override
Widget build(BuildContext context) {
var list = <Color>[Colors.redAccent, Colors.blueAccent, Colors.greenAccent];
final list = <Color>[
Colors.redAccent,
Colors.blueAccent,
Colors.greenAccent
];
return TransformerPageView(
loop: true,
transformer: DepthPageTransformer(),
itemBuilder: (BuildContext context, int index) {
return Container(
color: list[index % list.length],
child: Center(
child: Text(
'$index',
style: const TextStyle(fontSize: 80.0, color: Colors.white),
),
loop: true,
transformer: DepthPageTransformer(),
itemBuilder: (BuildContext context, int index) {
return Container(
color: list[index % list.length],
child: Center(
child: Text(
'$index',
style: const TextStyle(fontSize: 80.0, color: Colors.white),
),
);
},
itemCount: 3);
),
);
},
itemCount: 3,
);
}
}

Expand Down
Loading

0 comments on commit 95ff5d4

Please sign in to comment.