@@ -607,31 +607,29 @@ class _PackagesViewState extends State<_PackagesView> {
607607 final _LicenseData data,
608608 final bool drawSelection,
609609 ) {
610- return ListView (
611- children: < Widget > [
612- widget.about,
613- ...data.packages
614- .asMap ()
615- .entries
616- .map <Widget >((MapEntry <int , String > entry) {
617- final String packageName = entry.value;
618- final int index = entry.key;
619- final List <int > bindings = data.packageLicenseBindings[packageName]! ;
620- return _PackageListTile (
621- packageName: packageName,
622- index: index,
623- isSelected: drawSelection && entry.key == (selectedId ?? 0 ),
624- numberLicenses: bindings.length,
625- onTap: () {
626- widget.selectedId.value = index;
627- _MasterDetailFlow .of (context)! .openDetailPage (_DetailArguments (
628- packageName,
629- bindings.map ((int i) => data.licenses[i]).toList (growable: false ),
630- ));
631- },
632- );
633- }),
634- ],
610+ return ListView .builder (
611+ itemCount: data.packages.length + 1 ,
612+ itemBuilder: (BuildContext context, int index) {
613+ if (index == 0 ) {
614+ return widget.about;
615+ }
616+ final int packageIndex = index - 1 ;
617+ final String packageName = data.packages[packageIndex];
618+ final List <int > bindings = data.packageLicenseBindings[packageName]! ;
619+ return _PackageListTile (
620+ packageName: packageName,
621+ index: packageIndex,
622+ isSelected: drawSelection && packageIndex == (selectedId ?? 0 ),
623+ numberLicenses: bindings.length,
624+ onTap: () {
625+ widget.selectedId.value = packageIndex;
626+ _MasterDetailFlow .of (context)! .openDetailPage (_DetailArguments (
627+ packageName,
628+ bindings.map ((int i) => data.licenses[i]).toList (growable: false ),
629+ ));
630+ },
631+ );
632+ },
635633 );
636634 }
637635}
0 commit comments