Skip to content

Commit e6cd503

Browse files
gnpricechrisbobbe
authored andcommitted
scroll [nfc]: Use now-upstream ScrollView.paintOrder
The functionality provided by CustomPaintOrderScrollView is now available upstream, since my PR adding it landed: flutter/flutter#164818
1 parent 3f1f53a commit e6cd503

File tree

5 files changed

+18
-25
lines changed

5 files changed

+18
-25
lines changed

lib/example/sticky_header.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,8 @@
1717
/// so as to set the app ID differently.
1818
library;
1919

20-
// ignore: undefined_hidden_name // anticipates https://github.com/flutter/flutter/pull/164818
21-
import 'package:flutter/material.dart' hide SliverPaintOrder;
20+
import 'package:flutter/material.dart';
2221

23-
import '../widgets/scrolling.dart';
2422
import '../widgets/sticky_header.dart';
2523

2624
/// Example page using [StickyHeaderListView] and [StickyHeaderItem] in a
@@ -153,7 +151,7 @@ class ExampleVerticalDouble extends StatelessWidget {
153151

154152
return Scaffold(
155153
appBar: AppBar(title: Text(title)),
156-
body: CustomPaintOrderScrollView(
154+
body: CustomScrollView(
157155
semanticChildCount: numSections,
158156
center: centerKey,
159157
paintOrder: headerAtBottom ?

lib/widgets/message_list.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import 'dart:math';
22

33
import 'package:collection/collection.dart';
4-
// ignore: undefined_hidden_name // anticipates https://github.com/flutter/flutter/pull/164818
5-
import 'package:flutter/material.dart' hide SliverPaintOrder;
4+
import 'package:flutter/material.dart';
65
import 'package:flutter_color_models/flutter_color_models.dart';
76
import 'package:intl/intl.dart' hide TextDirection;
87

@@ -22,7 +21,7 @@ import 'emoji_reaction.dart';
2221
import 'icons.dart';
2322
import 'page.dart';
2423
import 'profile.dart';
25-
import 'scrolling.dart';
24+
import 'scrolling.dart' hide SliverPaintOrder;
2625
import 'sticky_header.dart';
2726
import 'store.dart';
2827
import 'text.dart';

lib/widgets/scrolling.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ class MessageListScrollController extends ScrollController {
403403
///
404404
/// This lets us customize behavior in ways that aren't currently supported
405405
/// by the fields of [CustomScrollView] itself.
406-
class MessageListScrollView extends CustomPaintOrderScrollView {
406+
class MessageListScrollView extends CustomScrollView {
407407
const MessageListScrollView({
408408
super.key,
409409
super.scrollDirection,
@@ -435,13 +435,13 @@ class MessageListScrollView extends CustomPaintOrderScrollView {
435435
cacheExtent: cacheExtent,
436436
center: center,
437437
clipBehavior: clipBehavior,
438-
paintOrder_: paintOrder_,
438+
paintOrder: paintOrder,
439439
);
440440
}
441441
}
442442

443443
/// The version of [Viewport] that underlies [MessageListScrollView].
444-
class MessageListViewport extends CustomPaintOrderViewport {
444+
class MessageListViewport extends Viewport {
445445
MessageListViewport({
446446
super.key,
447447
super.axisDirection,
@@ -452,7 +452,7 @@ class MessageListViewport extends CustomPaintOrderViewport {
452452
super.cacheExtentStyle,
453453
super.slivers,
454454
super.clipBehavior,
455-
required super.paintOrder_,
455+
required super.paintOrder,
456456
});
457457

458458
@override
@@ -465,7 +465,7 @@ class MessageListViewport extends CustomPaintOrderViewport {
465465
cacheExtent: cacheExtent,
466466
cacheExtentStyle: cacheExtentStyle,
467467
clipBehavior: clipBehavior,
468-
paintOrder_: paintOrder_,
468+
paintOrder: paintOrder,
469469
);
470470
}
471471
}
@@ -474,7 +474,7 @@ class MessageListViewport extends CustomPaintOrderViewport {
474474
/// and [MessageListScrollView].
475475
// TODO(upstream): Devise upstream APIs to obviate the duplicated code here;
476476
// use `git log -L` to see what edits we've made locally.
477-
class RenderMessageListViewport extends RenderCustomPaintOrderViewport {
477+
class RenderMessageListViewport extends RenderViewport {
478478
RenderMessageListViewport({
479479
super.axisDirection,
480480
required super.crossAxisDirection,
@@ -484,7 +484,7 @@ class RenderMessageListViewport extends RenderCustomPaintOrderViewport {
484484
super.cacheExtent,
485485
super.cacheExtentStyle,
486486
super.clipBehavior,
487-
required super.paintOrder_,
487+
required super.paintOrder,
488488
});
489489

490490
@override

lib/widgets/sticky_header.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -329,9 +329,8 @@ enum _HeaderGrowthPlacement {
329329
/// then this [SliverStickyHeaderList] must paint after any slivers that appear
330330
/// to the right of this sliver.
331331
///
332-
/// To control the viewport's paint order,
333-
/// consider using [CustomPaintOrderScrollView] instead of [CustomScrollView].
334-
/// Then [SliverPaintOrder.firstIsTop] for [HeaderPlacement.scrollingStart],
332+
/// To control the viewport's paint order, use [ScrollView.paintOrder].
333+
/// There [SliverPaintOrder.firstIsTop] for [HeaderPlacement.scrollingStart],
335334
/// or [SliverPaintOrder.lastIsTop] for [HeaderPlacement.scrollingEnd],
336335
/// suffices for meeting the needs above.
337336
class SliverStickyHeaderList extends RenderObjectWidget {

test/widgets/sticky_header_test.dart

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@ import 'package:checks/checks.dart';
44
import 'package:collection/collection.dart';
55
import 'package:flutter/foundation.dart';
66
import 'package:flutter/gestures.dart';
7-
// ignore: undefined_hidden_name // anticipates https://github.com/flutter/flutter/pull/164818
8-
import 'package:flutter/rendering.dart' hide SliverPaintOrder;
9-
// ignore: undefined_hidden_name // anticipates https://github.com/flutter/flutter/pull/164818
10-
import 'package:flutter/widgets.dart' hide SliverPaintOrder;
7+
import 'package:flutter/rendering.dart';
8+
import 'package:flutter/widgets.dart';
119
import 'package:flutter_test/flutter_test.dart';
12-
import 'package:zulip/widgets/scrolling.dart';
1310
import 'package:zulip/widgets/sticky_header.dart';
1411

1512
void main() {
@@ -236,7 +233,7 @@ void main() {
236233
const centerKey = ValueKey('center');
237234
final controller = ScrollController();
238235
await tester.pumpWidget(Directionality(textDirection: TextDirection.ltr,
239-
child: CustomPaintOrderScrollView(
236+
child: CustomScrollView(
240237
controller: controller,
241238
anchor: 0.0,
242239
center: centerKey,
@@ -341,7 +338,7 @@ Future<void> _checkSequence(
341338
anchor = 0.0;
342339
}
343340

344-
SliverPaintOrder paintOrder = SliverPaintOrder.centerTopFirstBottom;
341+
SliverPaintOrder paintOrder = SliverPaintOrder.firstIsTop;
345342
if (!allowOverflow || (sliverConfig == _SliverConfig.single)) {
346343
// The paint order doesn't matter.
347344
} else {
@@ -352,7 +349,7 @@ Future<void> _checkSequence(
352349
final controller = ScrollController();
353350
await tester.pumpWidget(Directionality(
354351
textDirection: textDirection ?? TextDirection.rtl,
355-
child: CustomPaintOrderScrollView(
352+
child: CustomScrollView(
356353
controller: controller,
357354
scrollDirection: axis,
358355
reverse: reverse,

0 commit comments

Comments
 (0)