import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
ScrollController controller = ScrollController();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: CustomScrollView(
controller: controller,
physics: BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()),
slivers: [
SliverToBoxAdapter(
child: Container(
color: Colors.blue[100],
height: 400,
width: double.infinity,
),
),
SliverToBoxAdapter(
child: Image.network(
width: double.infinity,
fit: BoxFit.fill,
),
),
SliverToBoxAdapter(
child: GestureDetector(
onTap: () => print(
'maxScrollExtent:${controller.position.maxScrollExtent}'),
child: Container(
color: Colors.blue[200],
height: 400,
width: double.infinity,
),
),
),
SliverToBoxAdapter(
child: GestureDetector(
onTap: () => pushPage(context),
child: Container(
color: Colors.blue[300],
height: 400,
width: double.infinity,
),
),
),
],
),
);
}
void pushPage(BuildContext context) {
Navigator.push(
context,
MaterialPageRoute<void>(
builder: (context) {
Future.delayed(Duration(seconds: 1), () {
print('clean chache');
PaintingBinding.instance.imageCache.clear();
});
return Scaffold(
appBar: AppBar(title: Text('My Page')),
body: Container(),
);
},
),
);
}
}