mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Port complex_layout to Sliver-based scrolling (#8114)
This commit is contained in:
parent
f36566fa6f
commit
88a01ac40c
@ -52,28 +52,9 @@ class ComplexLayout extends StatefulWidget {
|
||||
static ComplexLayoutState of(BuildContext context) => context.ancestorStateOfType(const TypeMatcher<ComplexLayoutState>());
|
||||
}
|
||||
|
||||
class FancyItemDelegate extends LazyBlockDelegate {
|
||||
@override
|
||||
Widget buildItem(BuildContext context, int index) {
|
||||
if (index % 2 == 0)
|
||||
return new FancyImageItem(index, key: new ValueKey<int>(index));
|
||||
else
|
||||
return new FancyGalleryItem(index, key: new ValueKey<int>(index));
|
||||
}
|
||||
|
||||
@override
|
||||
bool shouldRebuild(FancyItemDelegate oldDelegate) => false;
|
||||
|
||||
@override
|
||||
double estimateTotalExtent(int firstIndex, int lastIndex, double minOffset, double firstStartOffset, double lastEndOffset) {
|
||||
return double.INFINITY;
|
||||
}
|
||||
}
|
||||
|
||||
class ComplexLayoutState extends State<ComplexLayout> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
return new Scaffold(
|
||||
appBar: new AppBar(
|
||||
title: new Text('Advanced Layout'),
|
||||
@ -91,9 +72,14 @@ class ComplexLayoutState extends State<ComplexLayout> {
|
||||
body: new Column(
|
||||
children: <Widget>[
|
||||
new Expanded(
|
||||
child: new LazyBlock(
|
||||
child: new ListView.builder(
|
||||
key: new Key('main-scroll'), // this key is used by the driver test
|
||||
delegate: new FancyItemDelegate(),
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
if (index % 2 == 0)
|
||||
return new FancyImageItem(index, key: new ValueKey<int>(index));
|
||||
else
|
||||
return new FancyGalleryItem(index, key: new ValueKey<int>(index));
|
||||
},
|
||||
)
|
||||
),
|
||||
new BottomBar(),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user