{"action":"created","comment":{"url":"https://api.github.com/repos/flutter/flutter/pulls/comments/181198909","pull_request_review_id":111762484,"id":181198909,"diff_hunk":"@@ -53,17 +148,69 @@ class AnimatedChildSwitcher extends StatefulWidget {\n   /// [duration].\n   final Widget child;\n \n+  /// The duration over which to perform the cross fade using [FadeTransition].\n+  final Duration duration;\n+\n   /// The animation curve to use when fading in the current widget.\n   final Curve switchInCurve;\n \n   /// The animation curve to use when fading out the previous widgets.\n   final Curve switchOutCurve;\n \n-  /// The duration over which to perform the cross fade using [FadeTransition].\n-  final Duration duration;\n+  /// The builder function used to generate custom transitions for\n+  /// [AnimatedChildSwitcher].\n+  ///\n+  /// The default is [AnimatedChildSwitcher.defaultTransitionBuilder].\n+  ///\n+  /// See also:\n+  ///\n+  ///  * [AnimatedChildSwitcherTransitionBuilder] for more information about\n+  ///    how a transition builder should function.\n+  final AnimatedChildSwitcherTransitionBuilder transitionBuilder;\n+\n+  /// The builder function used to generate custom child layouts for\n+  /// [AnimatedChildSwitcher].\n+  ///\n+  /// The default is [AnimatedChildSwitcher.defaultLayoutBuilder].\n+  ///\n+  /// See also:\n+  ///\n+  ///  * [AnimatedChildSwitcherLayoutBuilder] for more information about\n+  ///    how a layout builder should function.\n+  final AnimatedChildSwitcherLayoutBuilder layoutBuilder;\n \n   @override\n   _AnimatedChildSwitcherState createState() => new _AnimatedChildSwitcherState();\n+\n+  /// The default transition algorithm used by [AnimatedChildSwitcher].\n+  ///\n+  /// The new child is given a [FadeTransition] which increases opacity as\n+  /// the animation goes from 0.0 to 1.0, and decreases when the animation is\n+  /// reversed.\n+  ///\n+  /// This is the default value for [transitionBuilder]. It implements","path":"packages/flutter/lib/src/widgets/animated_child_switcher.dart","position":193,"original_position":193,"commit_id":"04aee9d123a4c78cd8ffba3b50be311870257e25","original_commit_id":"04aee9d123a4c78cd8ffba3b50be311870257e25","user":{"login":"gspencergoog","id":8867023,"avatar_url":"https://avatars2.githubusercontent.com/u/8867023?v=4","gravatar_id":"","url":"https://api.github.com/users/gspencergoog","html_url":"https://github.com/gspencergoog","followers_url":"https://api.github.com/users/gspencergoog/followers","following_url":"https://api.github.com/users/gspencergoog/following{/other_user}","gists_url":"https://api.github.com/users/gspencergoog/gists{/gist_id}","starred_url":"https://api.github.com/users/gspencergoog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gspencergoog/subscriptions","organizations_url":"https://api.github.com/users/gspencergoog/orgs","repos_url":"https://api.github.com/users/gspencergoog/repos","events_url":"https://api.github.com/users/gspencergoog/events{/privacy}","received_events_url":"https://api.github.com/users/gspencergoog/received_events","type":"User","site_admin":false},"body":"Good point.  Done.","created_at":"2018-04-12T19:39:49Z","updated_at":"2018-04-12T20:03:35Z","html_url":"https://github.com/flutter/flutter/pull/16250#discussion_r181198909","pull_request_url":"https://api.github.com/repos/flutter/flutter/pulls/16250","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/flutter/flutter/pulls/comments/181198909"},"html":{"href":"https://github.com/flutter/flutter/pull/16250#discussion_r181198909"},"pull_request":{"href":"https://api.github.com/repos/flutter/flutter/pulls/16250"}},"in_reply_to_id":181175548},"pull_request":{"url":"https://api.github.com/repos/flutter/flutter/pulls/16250","id":179531234,"html_url":"https://github.com/flutter/flutter/pull/16250","diff_url":"https://github.com/flutter/flutter/pull/16250.diff","patch_url":"https://github.com/flutter/flutter/pull/16250.patch","issue_url":"https://api.github.com/repos/flutter/flutter/issues/16250","number":16250,"state":"open","locked":false,"title":"Fix a bug in the AnimatedChildSwitcher, add builders.","user":{"login":"gspencergoog","id":8867023,"avatar_url":"https://avatars2.githubusercontent.com/u/8867023?v=4","gravatar_id":"","url":"https://api.github.com/users/gspencergoog","html_url":"https://github.com/gspencergoog","followers_url":"https://api.github.com/users/gspencergoog/followers","following_url":"https://api.github.com/users/gspencergoog/following{/other_user}","gists_url":"https://api.github.com/users/gspencergoog/gists{/gist_id}","starred_url":"https://api.github.com/users/gspencergoog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gspencergoog/subscriptions","organizations_url":"https://api.github.com/users/gspencergoog/orgs","repos_url":"https://api.github.com/users/gspencergoog/repos","events_url":"https://api.github.com/users/gspencergoog/events{/privacy}","received_events_url":"https://api.github.com/users/gspencergoog/received_events","type":"User","site_admin":false},"body":"This fixes a rendering problem in the AnimatedChildSwitcher where it would add a new \"previous\" child each time it rebuilt, and if you did it fast enough, all of them would disappear from the page.\r\n\r\nIt also expands the API for AnimatedChildSwitcher to allow you to specify your own transition and/or layout builder for the transition.\r\n\r\nFixes https://github.com/flutter/flutter/issues/16226","created_at":"2018-04-04T22:40:27Z","updated_at":"2018-04-12T20:03:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"240352edb28877f8bf583334f4c6d5904de780ec","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":487496476,"url":"https://api.github.com/repos/flutter/flutter/labels/cla:%20yes","name":"cla: yes","color":"ffffff","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/flutter/flutter/pulls/16250/commits","review_comments_url":"https://api.github.com/repos/flutter/flutter/pulls/16250/comments","review_comment_url":"https://api.github.com/repos/flutter/flutter/pulls/comments{/number}","comments_url":"https://api.github.com/repos/flutter/flutter/issues/16250/comments","statuses_url":"https://api.github.com/repos/flutter/flutter/statuses/04aee9d123a4c78cd8ffba3b50be311870257e25","head":{"label":"gspencergoog:switcher_fix","ref":"switcher_fix","sha":"04aee9d123a4c78cd8ffba3b50be311870257e25","user":{"login":"gspencergoog","id":8867023,"avatar_url":"https://avatars2.githubusercontent.com/u/8867023?v=4","gravatar_id":"","url":"https://api.github.com/users/gspencergoog","html_url":"https://github.com/gspencergoog","followers_url":"https://api.github.com/users/gspencergoog/followers","following_url":"https://api.github.com/users/gspencergoog/following{/other_user}","gists_url":"https://api.github.com/users/gspencergoog/gists{/gist_id}","starred_url":"https://api.github.com/users/gspencergoog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gspencergoog/subscriptions","organizations_url":"https://api.github.com/users/gspencergoog/orgs","repos_url":"https://api.github.com/users/gspencergoog/repos","events_url":"https://api.github.com/users/gspencergoog/events{/privacy}","received_events_url":"https://api.github.com/users/gspencergoog/received_events","type":"User","site_admin":false},"repo":{"id":92983227,"name":"flutter","full_name":"gspencergoog/flutter","owner":{"login":"gspencergoog","id":8867023,"avatar_url":"https://avatars2.githubusercontent.com/u/8867023?v=4","gravatar_id":"","url":"https://api.github.com/users/gspencergoog","html_url":"https://github.com/gspencergoog","followers_url":"https://api.github.com/users/gspencergoog/followers","following_url":"https://api.github.com/users/gspencergoog/following{/other_user}","gists_url":"https://api.github.com/users/gspencergoog/gists{/gist_id}","starred_url":"https://api.github.com/users/gspencergoog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gspencergoog/subscriptions","organizations_url":"https://api.github.com/users/gspencergoog/orgs","repos_url":"https://api.github.com/users/gspencergoog/repos","events_url":"https://api.github.com/users/gspencergoog/events{/privacy}","received_events_url":"https://api.github.com/users/gspencergoog/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/gspencergoog/flutter","description":"Flutter makes it easy and fast to build beautiful mobile apps.","fork":true,"url":"https://api.github.com/repos/gspencergoog/flutter","forks_url":"https://api.github.com/repos/gspencergoog/flutter/forks","keys_url":"https://api.github.com/repos/gspencergoog/flutter/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gspencergoog/flutter/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gspencergoog/flutter/teams","hooks_url":"https://api.github.com/repos/gspencergoog/flutter/hooks","issue_events_url":"https://api.github.com/repos/gspencergoog/flutter/issues/events{/number}","events_url":"https://api.github.com/repos/gspencergoog/flutter/events","assignees_url":"https://api.github.com/repos/gspencergoog/flutter/assignees{/user}","branches_url":"https://api.github.com/repos/gspencergoog/flutter/branches{/branch}","tags_url":"https://api.github.com/repos/gspencergoog/flutter/tags","blobs_url":"https://api.github.com/repos/gspencergoog/flutter/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gspencergoog/flutter/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gspencergoog/flutter/git/refs{/sha}","trees_url":"https://api.github.com/repos/gspencergoog/flutter/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gspencergoog/flutter/statuses/{sha}","languages_url":"https://api.github.com/repos/gspencergoog/flutter/languages","stargazers_url":"https://api.github.com/repos/gspencergoog/flutter/stargazers","contributors_url":"https://api.github.com/repos/gspencergoog/flutter/contributors","subscribers_url":"https://api.github.com/repos/gspencergoog/flutter/subscribers","subscription_url":"https://api.github.com/repos/gspencergoog/flutter/subscription","commits_url":"https://api.github.com/repos/gspencergoog/flutter/commits{/sha}","git_commits_url":"https://api.github.com/repos/gspencergoog/flutter/git/commits{/sha}","comments_url":"https://api.github.com/repos/gspencergoog/flutter/comments{/number}","issue_comment_url":"https://api.github.com/repos/gspencergoog/flutter/issues/comments{/number}","contents_url":"https://api.github.com/repos/gspencergoog/flutter/contents/{+path}","compare_url":"https://api.github.com/repos/gspencergoog/flutter/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gspencergoog/flutter/merges","archive_url":"https://api.github.com/repos/gspencergoog/flutter/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gspencergoog/flutter/downloads","issues_url":"https://api.github.com/repos/gspencergoog/flutter/issues{/number}","pulls_url":"https://api.github.com/repos/gspencergoog/flutter/pulls{/number}","milestones_url":"https://api.github.com/repos/gspencergoog/flutter/milestones{/number}","notifications_url":"https://api.github.com/repos/gspencergoog/flutter/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gspencergoog/flutter/labels{/name}","releases_url":"https://api.github.com/repos/gspencergoog/flutter/releases{/id}","deployments_url":"https://api.github.com/repos/gspencergoog/flutter/deployments","created_at":"2017-05-31T19:52:38Z","updated_at":"2018-04-12T19:27:16Z","pushed_at":"2018-04-12T19:31:27Z","git_url":"git://github.com/gspencergoog/flutter.git","ssh_url":"git@github.com:gspencergoog/flutter.git","clone_url":"https://github.com/gspencergoog/flutter.git","svn_url":"https://github.com/gspencergoog/flutter","homepage":"https://flutter.io","size":36810,"stargazers_count":0,"watchers_count":0,"language":"Dart","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"flutter:master","ref":"master","sha":"f408bb06f9361793ca85493c38d809ee1e2f7e30","user":{"login":"flutter","id":14101776,"avatar_url":"https://avatars3.githubusercontent.com/u/14101776?v=4","gravatar_id":"","url":"https://api.github.com/users/flutter","html_url":"https://github.com/flutter","followers_url":"https://api.github.com/users/flutter/followers","following_url":"https://api.github.com/users/flutter/following{/other_user}","gists_url":"https://api.github.com/users/flutter/gists{/gist_id}","starred_url":"https://api.github.com/users/flutter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flutter/subscriptions","organizations_url":"https://api.github.com/users/flutter/orgs","repos_url":"https://api.github.com/users/flutter/repos","events_url":"https://api.github.com/users/flutter/events{/privacy}","received_events_url":"https://api.github.com/users/flutter/received_events","type":"Organization","site_admin":false},"repo":{"id":31792824,"name":"flutter","full_name":"flutter/flutter","owner":{"login":"flutter","id":14101776,"avatar_url":"https://avatars3.githubusercontent.com/u/14101776?v=4","gravatar_id":"","url":"https://api.github.com/users/flutter","html_url":"https://github.com/flutter","followers_url":"https://api.github.com/users/flutter/followers","following_url":"https://api.github.com/users/flutter/following{/other_user}","gists_url":"https://api.github.com/users/flutter/gists{/gist_id}","starred_url":"https://api.github.com/users/flutter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flutter/subscriptions","organizations_url":"https://api.github.com/users/flutter/orgs","repos_url":"https://api.github.com/users/flutter/repos","events_url":"https://api.github.com/users/flutter/events{/privacy}","received_events_url":"https://api.github.com/users/flutter/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/flutter/flutter","description":"Flutter makes it easy and fast to build beautiful mobile apps.","fork":false,"url":"https://api.github.com/repos/flutter/flutter","forks_url":"https://api.github.com/repos/flutter/flutter/forks","keys_url":"https://api.github.com/repos/flutter/flutter/keys{/key_id}","collaborators_url":"https://api.github.com/repos/flutter/flutter/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/flutter/flutter/teams","hooks_url":"https://api.github.com/repos/flutter/flutter/hooks","issue_events_url":"https://api.github.com/repos/flutter/flutter/issues/events{/number}","events_url":"https://api.github.com/repos/flutter/flutter/events","assignees_url":"https://api.github.com/repos/flutter/flutter/assignees{/user}","branches_url":"https://api.github.com/repos/flutter/flutter/branches{/branch}","tags_url":"https://api.github.com/repos/flutter/flutter/tags","blobs_url":"https://api.github.com/repos/flutter/flutter/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/flutter/flutter/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/flutter/flutter/git/refs{/sha}","trees_url":"https://api.github.com/repos/flutter/flutter/git/trees{/sha}","statuses_url":"https://api.github.com/repos/flutter/flutter/statuses/{sha}","languages_url":"https://api.github.com/repos/flutter/flutter/languages","stargazers_url":"https://api.github.com/repos/flutter/flutter/stargazers","contributors_url":"https://api.github.com/repos/flutter/flutter/contributors","subscribers_url":"https://api.github.com/repos/flutter/flutter/subscribers","subscription_url":"https://api.github.com/repos/flutter/flutter/subscription","commits_url":"https://api.github.com/repos/flutter/flutter/commits{/sha}","git_commits_url":"https://api.github.com/repos/flutter/flutter/git/commits{/sha}","comments_url":"https://api.github.com/repos/flutter/flutter/comments{/number}","issue_comment_url":"https://api.github.com/repos/flutter/flutter/issues/comments{/number}","contents_url":"https://api.github.com/repos/flutter/flutter/contents/{+path}","compare_url":"https://api.github.com/repos/flutter/flutter/compare/{base}...{head}","merges_url":"https://api.github.com/repos/flutter/flutter/merges","archive_url":"https://api.github.com/repos/flutter/flutter/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/flutter/flutter/downloads","issues_url":"https://api.github.com/repos/flutter/flutter/issues{/number}","pulls_url":"https://api.github.com/repos/flutter/flutter/pulls{/number}","milestones_url":"https://api.github.com/repos/flutter/flutter/milestones{/number}","notifications_url":"https://api.github.com/repos/flutter/flutter/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/flutter/flutter/labels{/name}","releases_url":"https://api.github.com/repos/flutter/flutter/releases{/id}","deployments_url":"https://api.github.com/repos/flutter/flutter/deployments","created_at":"2015-03-06T22:54:58Z","updated_at":"2018-04-12T19:34:23Z","pushed_at":"2018-04-12T19:53:00Z","git_url":"git://github.com/flutter/flutter.git","ssh_url":"git@github.com:flutter/flutter.git","clone_url":"https://github.com/flutter/flutter.git","svn_url":"https://github.com/flutter/flutter","homepage":"https://flutter.io","size":36781,"stargazers_count":21383,"watchers_count":21383,"language":"Dart","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1797,"mirror_url":null,"archived":false,"open_issues_count":2879,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":1797,"open_issues":2879,"watchers":21383,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/flutter/flutter/pulls/16250"},"html":{"href":"https://github.com/flutter/flutter/pull/16250"},"issue":{"href":"https://api.github.com/repos/flutter/flutter/issues/16250"},"comments":{"href":"https://api.github.com/repos/flutter/flutter/issues/16250/comments"},"review_comments":{"href":"https://api.github.com/repos/flutter/flutter/pulls/16250/comments"},"review_comment":{"href":"https://api.github.com/repos/flutter/flutter/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/flutter/flutter/pulls/16250/commits"},"statuses":{"href":"https://api.github.com/repos/flutter/flutter/statuses/04aee9d123a4c78cd8ffba3b50be311870257e25"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"gspencergoog"}}