-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listd: examplesSample code and demosSample code and demosfound in release: 3.13Found to occur in 3.13Found to occur in 3.13found in release: 3.14Found to occur in 3.14Found to occur in 3.14frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onteam-frameworkOwned by Framework teamOwned by Framework teamtriaged-frameworkTriaged by Framework teamTriaged by Framework team
Description
Your Listview example not working
https://api.flutter.dev/flutter/foundation/ChangeNotifier-class.html
it says "max must be in range 0 < max ≤ 2^32, was 0"
import 'dart:math' as math;
import 'package:flutter/material.dart';
/// Flutter code sample for a [ChangeNotifier] with a [ListenableBuilder].
void main() {
runApp(const ListenableBuilderExample());
}
class ListModel with ChangeNotifier {
final List<int> _values = <int>[];
List<int> get values => _values.toList(); // O(N), makes a new copy each time.
void add(int value) {
_values.add(value);
notifyListeners();
}
}
class ListenableBuilderExample extends StatefulWidget {
const ListenableBuilderExample({super.key});
@override
State<ListenableBuilderExample> createState() =>
_ListenableBuilderExampleState();
}
class _ListenableBuilderExampleState extends State<ListenableBuilderExample> {
final ListModel _listNotifier = ListModel();
final math.Random _random = math.Random(0); // fixed seed for reproducability
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('ListenableBuilder Example')),
body: ListBody(listNotifier: _listNotifier),
floatingActionButton: FloatingActionButton(
onPressed: () => _listNotifier.add(_random
.nextInt(1 << 32)), // 1 << 32 is the maximum supported value
child: const Icon(Icons.add),
),
),
);
}
}
class ListBody extends StatelessWidget {
const ListBody({super.key, required this.listNotifier});
final ListModel listNotifier;
@override
Widget build(BuildContext context) {
return Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
const Text('Current values:'),
Expanded(
child: ListenableBuilder(
listenable: listNotifier,
builder: (BuildContext context, Widget? child) {
// We rebuild the ListView each time the list changes,
// so that the framework knows to update the rendering.
final List<int> values = listNotifier.values; // copy the list
return ListView.builder(
itemBuilder: (BuildContext context, int index) => ListTile(
title: Text('${values[index]}'),
),
itemCount: values.length,
);
},
),
),
],
),
);
}
}
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listd: examplesSample code and demosSample code and demosfound in release: 3.13Found to occur in 3.13Found to occur in 3.13found in release: 3.14Found to occur in 3.14Found to occur in 3.14frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onteam-frameworkOwned by Framework teamOwned by Framework teamtriaged-frameworkTriaged by Framework teamTriaged by Framework team