Buckets:
| import 'package:flutter/material.dart'; | |
| import '../settings/settings_view.dart'; | |
| import 'sample_item.dart'; | |
| import 'sample_item_details_view.dart'; | |
| /// Displays a list of SampleItems. | |
| class SampleItemListView extends StatelessWidget { | |
| const SampleItemListView({ | |
| super.key, | |
| this.items = const [SampleItem(1), SampleItem(2), SampleItem(3)], | |
| }); | |
| static const routeName = '/'; | |
| final List<SampleItem> items; | |
| Widget build(BuildContext context) { | |
| return Scaffold( | |
| appBar: AppBar( | |
| title: const Text('Sample Items'), | |
| actions: [ | |
| IconButton( | |
| icon: const Icon(Icons.settings), | |
| onPressed: () { | |
| // Navigate to the settings page. If the user leaves and returns | |
| // to the app after it has been killed while running in the | |
| // background, the navigation stack is restored. | |
| Navigator.restorablePushNamed(context, SettingsView.routeName); | |
| }, | |
| ), | |
| ], | |
| ), | |
| // To work with lists that may contain a large number of items, it’s best | |
| // to use the ListView.builder constructor. | |
| // | |
| // In contrast to the default ListView constructor, which requires | |
| // building all Widgets up front, the ListView.builder constructor lazily | |
| // builds Widgets as they’re scrolled into view. | |
| body: ListView.builder( | |
| // Providing a restorationId allows the ListView to restore the | |
| // scroll position when a user leaves and returns to the app after it | |
| // has been killed while running in the background. | |
| restorationId: 'sampleItemListView', | |
| itemCount: items.length, | |
| itemBuilder: (BuildContext context, int index) { | |
| final item = items[index]; | |
| return ListTile( | |
| title: Text('SampleItem ${item.id}'), | |
| leading: const CircleAvatar( | |
| // Display the Flutter Logo image asset. | |
| foregroundImage: AssetImage('assets/images/flutter_logo.png'), | |
| ), | |
| onTap: () { | |
| // Navigate to the details page. If the user leaves and returns to | |
| // the app after it has been killed while running in the | |
| // background, the navigation stack is restored. | |
| Navigator.restorablePushNamed( | |
| context, | |
| SampleItemDetailsView.routeName, | |
| ); | |
| } | |
| ); | |
| }, | |
| ), | |
| ); | |
| } | |
| } | |
Xet Storage Details
- Size:
- 2.48 kB
- Xet hash:
- 30144044206a597039ea692b3688d4a7729830c40073f1f0dcb96e3d5583c679
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.