payload: {"action":"closed","issue":{"url":"https://api.github.com/repos/flutter/flutter/issues/38301","repository_url":"https://api.github.com/repos/flutter/flutter","labels_url":"https://api.github.com/repos/flutter/flutter/issues/38301/labels{/name}","comments_url":"https://api.github.com/repos/flutter/flutter/issues/38301/comments","events_url":"https://api.github.com/repos/flutter/flutter/issues/38301/events","html_url":"https://github.com/flutter/flutter/issues/38301","id":479667570,"node_id":"MDU6SXNzdWU0Nzk2Njc1NzA=","number":38301,"title":"showOnScreen fails for ReverseGrowthDirection slivers in reversed list","user":{"login":"tarobins","id":4871097,"node_id":"MDQ6VXNlcjQ4NzEwOTc=","avatar_url":"https://avatars2.githubusercontent.com/u/4871097?v=4","gravatar_id":"","url":"https://api.github.com/users/tarobins","html_url":"https://github.com/tarobins","followers_url":"https://api.github.com/users/tarobins/followers","following_url":"https://api.github.com/users/tarobins/following{/other_user}","gists_url":"https://api.github.com/users/tarobins/gists{/gist_id}","starred_url":"https://api.github.com/users/tarobins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tarobins/subscriptions","organizations_url":"https://api.github.com/users/tarobins/orgs","repos_url":"https://api.github.com/users/tarobins/repos","events_url":"https://api.github.com/users/tarobins/events{/privacy}","received_events_url":"https://api.github.com/users/tarobins/received_events","type":"User","site_admin":false},"labels":[{"id":448556278,"node_id":"MDU6TGFiZWw0NDg1NTYyNzg=","url":"https://api.github.com/repos/flutter/flutter/labels/f:%20scrolling","name":"f: scrolling","color":"207de5","default":false},{"id":284437560,"node_id":"MDU6TGFiZWwyODQ0Mzc1NjA=","url":"https://api.github.com/repos/flutter/flutter/labels/framework","name":"framework","color":"207de5","default":false}],"state":"closed","locked":false,"assignee":{"login":"tarobins","id":4871097,"node_id":"MDQ6VXNlcjQ4NzEwOTc=","avatar_url":"https://avatars2.githubusercontent.com/u/4871097?v=4","gravatar_id":"","url":"https://api.github.com/users/tarobins","html_url":"https://github.com/tarobins","followers_url":"https://api.github.com/users/tarobins/followers","following_url":"https://api.github.com/users/tarobins/following{/other_user}","gists_url":"https://api.github.com/users/tarobins/gists{/gist_id}","starred_url":"https://api.github.com/users/tarobins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tarobins/subscriptions","organizations_url":"https://api.github.com/users/tarobins/orgs","repos_url":"https://api.github.com/users/tarobins/repos","events_url":"https://api.github.com/users/tarobins/events{/privacy}","received_events_url":"https://api.github.com/users/tarobins/received_events","type":"User","site_admin":false},"assignees":[{"login":"tarobins","id":4871097,"node_id":"MDQ6VXNlcjQ4NzEwOTc=","avatar_url":"https://avatars2.githubusercontent.com/u/4871097?v=4","gravatar_id":"","url":"https://api.github.com/users/tarobins","html_url":"https://github.com/tarobins","followers_url":"https://api.github.com/users/tarobins/followers","following_url":"https://api.github.com/users/tarobins/following{/other_user}","gists_url":"https://api.github.com/users/tarobins/gists{/gist_id}","starred_url":"https://api.github.com/users/tarobins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tarobins/subscriptions","organizations_url":"https://api.github.com/users/tarobins/orgs","repos_url":"https://api.github.com/users/tarobins/repos","events_url":"https://api.github.com/users/tarobins/events{/privacy}","received_events_url":"https://api.github.com/users/tarobins/received_events","type":"User","site_admin":false}],"milestone":null,"comments":3,"created_at":"2019-08-12T14:10:11Z","updated_at":"2019-08-23T04:28:36Z","closed_at":"2019-08-23T04:28:36Z","author_association":"CONTRIBUTOR","body":"The Reverse list tests in the following set of tests fail and should not\r\n\r\n\r\n```dart\r\nimport 'package:flutter/material.dart';\r\nimport 'package:flutter/rendering.dart';\r\nimport 'package:flutter_test/flutter_test.dart';\r\n\r\nconst screenHeight = 400.0;\r\nconst screenWidth = 400.0;\r\nconst itemHeight = screenHeight / 10.0;\r\nconst defaultItemCount = 500;\r\nfinal centerKey = ValueKey('center');\r\n\r\nvoid main() {\r\n  testWidgets('Forward List showOnScreen', (WidgetTester tester) async {\r\n    tester.binding.window.devicePixelRatioTestValue = 1.0;\r\n    tester.binding.window.physicalSizeTestValue =\r\n        Size(screenWidth, screenHeight);\r\n\r\n    await tester.pumpWidget(build(reverse: false));\r\n\r\n    expect(find.text('Item -1'), findsNothing);\r\n\r\n    RenderBox itemNeg1 =\r\n    tester.renderObject(find.text('Item -1', skipOffstage: false));\r\n\r\n    itemNeg1.showOnScreen(duration: Duration(seconds: 1));\r\n    await tester.pumpAndSettle();\r\n    expect(find.text('Item -1'), findsOneWidget);\r\n  });\r\n\r\n  testWidgets('Reverse List showOnScreen', (WidgetTester tester) async {\r\n    tester.binding.window.devicePixelRatioTestValue = 1.0;\r\n    tester.binding.window.physicalSizeTestValue =\r\n        Size(screenWidth, screenHeight);\r\n\r\n    await tester.pumpWidget(build(reverse: true));\r\n\r\n    expect(find.text('Item -1'), findsNothing);\r\n\r\n    RenderBox itemNeg1 =\r\n    tester.renderObject(find.text('Item -1', skipOffstage: false));\r\n\r\n    itemNeg1.showOnScreen(duration: Duration(seconds: 1));\r\n    await tester.pumpAndSettle();\r\n    expect(find.text('Item -1'), findsOneWidget);\r\n  });\r\n\r\n  testWidgets('Forward List getOffsetToReveal', (WidgetTester tester) async {\r\n    tester.binding.window.devicePixelRatioTestValue = 1.0;\r\n    tester.binding.window.physicalSizeTestValue =\r\n        Size(screenWidth, screenHeight);\r\n\r\n    await tester.pumpWidget(build(reverse: false));\r\n\r\n    expect(find.text('Item -1', skipOffstage: false), findsOneWidget);\r\n    expect(find.text('Item -1'), findsNothing);\r\n    expect(find.text('Item 0'), findsOneWidget);\r\n    expect(find.text('Item 1'), findsOneWidget);\r\n\r\n    RenderViewport vp = tester.renderObject(find.byType(Viewport));\r\n    RenderBox itemNeg1 =\r\n        tester.renderObject(find.text('Item -1', skipOffstage: false));\r\n\r\n    RevealedOffset neg1Reveal = vp.getOffsetToReveal(itemNeg1, 0);\r\n    expect(neg1Reveal.offset, -40);\r\n  });\r\n\r\n\r\n  testWidgets('Reverse List getOffsetToReveal', (WidgetTester tester) async {\r\n    tester.binding.window.devicePixelRatioTestValue = 1.0;\r\n    tester.binding.window.physicalSizeTestValue =\r\n        Size(screenWidth, screenHeight);\r\n\r\n    await tester.pumpWidget(build(reverse: true));\r\n\r\n    expect(find.text('Item -1', skipOffstage: false), findsOneWidget);\r\n    expect(find.text('Item -1'), findsNothing);\r\n    expect(find.text('Item 0'), findsOneWidget);\r\n    expect(find.text('Item 1'), findsOneWidget);\r\n\r\n    RenderViewport vp = tester.renderObject(find.byType(Viewport));\r\n    RenderBox itemNeg1 =\r\n        tester.renderObject(find.text('Item -1', skipOffstage: false));\r\n\r\n    RevealedOffset neg1Reveal = vp.getOffsetToReveal(itemNeg1, 0);\r\n    expect(neg1Reveal.offset, -40);\r\n  });\r\n}\r\n\r\nWidget build({bool reverse}) => MaterialApp(\r\n      home: Material(\r\n        child: CustomScrollView(\r\n          center: centerKey,\r\n          reverse: reverse,\r\n          slivers: <Widget>[\r\n            SliverList(\r\n              delegate: SliverChildListDelegate(\r\n                List.generate(\r\n                  10,\r\n                  (index) => SizedBox(\r\n                        height: itemHeight,\r\n                        child: Text('Item ${-index - 1}'),\r\n                      ),\r\n                ),\r\n              ),\r\n            ),\r\n            SliverList(\r\n              key: centerKey,\r\n              delegate: SliverChildListDelegate(\r\n                List.generate(\r\n                  1,\r\n                  (index) => SizedBox(\r\n                        height: itemHeight,\r\n                        child: Text('Item 0'),\r\n                      ),\r\n                ),\r\n              ),\r\n            ),\r\n            SliverList(\r\n              delegate: SliverChildListDelegate(\r\n                List.generate(\r\n                  10,\r\n                  (index) => SizedBox(\r\n                        height: itemHeight,\r\n                        child: Text('Item ${index + 1}'),\r\n                      ),\r\n                ),\r\n              ),\r\n            ),\r\n          ],\r\n        ),\r\n      ),\r\n    );\r\n```"}}
other: {"actor":{"display_login":"tarobins"}}