From 95116386b73b3d0594711613514f252487356dc1 Mon Sep 17 00:00:00 2001 From: Gustav Bylund Date: Mon, 9 May 2022 18:44:06 +0200 Subject: [PATCH] Replace ListView with ListView.builder for LicensesPage (#102692) --- packages/flutter/lib/src/material/about.dart | 48 ++++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/packages/flutter/lib/src/material/about.dart b/packages/flutter/lib/src/material/about.dart index f8fb78a3dac8..af0ee463a1b4 100644 --- a/packages/flutter/lib/src/material/about.dart +++ b/packages/flutter/lib/src/material/about.dart @@ -607,31 +607,29 @@ class _PackagesViewState extends State<_PackagesView> { final _LicenseData data, final bool drawSelection, ) { - return ListView( - children: [ - widget.about, - ...data.packages - .asMap() - .entries - .map((MapEntry entry) { - final String packageName = entry.value; - final int index = entry.key; - final List bindings = data.packageLicenseBindings[packageName]!; - return _PackageListTile( - packageName: packageName, - index: index, - isSelected: drawSelection && entry.key == (selectedId ?? 0), - numberLicenses: bindings.length, - onTap: () { - widget.selectedId.value = index; - _MasterDetailFlow.of(context)!.openDetailPage(_DetailArguments( - packageName, - bindings.map((int i) => data.licenses[i]).toList(growable: false), - )); - }, - ); - }), - ], + return ListView.builder( + itemCount: data.packages.length + 1, + itemBuilder: (BuildContext context, int index) { + if (index == 0) { + return widget.about; + } + final int packageIndex = index - 1; + final String packageName = data.packages[packageIndex]; + final List bindings = data.packageLicenseBindings[packageName]!; + return _PackageListTile( + packageName: packageName, + index: packageIndex, + isSelected: drawSelection && packageIndex == (selectedId ?? 0), + numberLicenses: bindings.length, + onTap: () { + widget.selectedId.value = packageIndex; + _MasterDetailFlow.of(context)!.openDetailPage(_DetailArguments( + packageName, + bindings.map((int i) => data.licenses[i]).toList(growable: false), + )); + }, + ); + }, ); } }