Aucune description

change_gallery_dialog.dart 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import 'package:flutter/material.dart';
  2. import 'package:photo/src/entity/options.dart';
  3. import 'package:photo/src/provider/i18n_provider.dart';
  4. import 'package:photo_manager/photo_manager.dart';
  5. class ChangeGalleryDialog extends StatefulWidget {
  6. final List<AssetPathEntity> galleryList;
  7. final I18nProvider i18n;
  8. final Options options;
  9. const ChangeGalleryDialog({
  10. Key key,
  11. this.galleryList,
  12. this.i18n,
  13. this.options,
  14. }) : super(key: key);
  15. @override
  16. _ChangeGalleryDialogState createState() => _ChangeGalleryDialogState();
  17. }
  18. class _ChangeGalleryDialogState extends State<ChangeGalleryDialog> {
  19. @override
  20. Widget build(BuildContext context) {
  21. return Container(
  22. child: ListView.builder(
  23. itemBuilder: _buildItem,
  24. itemCount: widget.galleryList.length,
  25. ),
  26. );
  27. }
  28. Widget _buildItem(BuildContext context, int index) {
  29. var entity = widget.galleryList[index];
  30. String text;
  31. if (entity.isAll) {
  32. text = widget.i18n?.getAllGalleryText(widget.options);
  33. }
  34. text = text ?? entity.name;
  35. return FlatButton(
  36. child: ListTile(
  37. title: Text("$text (${entity.assetCount})"),
  38. ),
  39. onPressed: () {
  40. Navigator.pop(context, entity);
  41. },
  42. );
  43. }
  44. }