@@ -152,31 +152,44 @@ class GoodsListScreen extends StatelessWidget {
152
152
Widget build (BuildContext context) {
153
153
return ChangeNotifierProvider (
154
154
create: (_) => GoodsListProvider (),
155
- child: Selector <GoodsListProvider , GoodsListProvider >(
156
- shouldRebuild: (pre, next) => false ,
157
- selector: (context, provider) => provider,
158
- builder: (context, provider, child) {
159
- return ListView .builder (
160
- itemCount: provider.total,
161
- itemBuilder: (context, index) {
162
- return Selector <GoodsListProvider , Goods >(
163
- selector: (context, provider) => provider.goodsList[index],
164
- builder: (context, data, child) {
165
- print (('No.${index + 1 } rebuild' ));
155
+ child: Scaffold (
156
+ body: Selector <GoodsListProvider , GoodsListProvider >(
157
+ shouldRebuild: (pre, next) => pre.shouldRebuild,
158
+ selector: (context, provider) => provider,
159
+ builder: (context, provider, child) {
160
+ provider.rebuild ();
161
+ return ListView .builder (
162
+ itemCount: provider.total,
163
+ itemBuilder: (context, index) {
164
+ return Selector <GoodsListProvider , Goods >(
165
+ selector: (context, provider) => provider.goodsList[index],
166
+ builder: (context, data, child) {
167
+ print (('No.${index + 1 } rebuild' ));
166
168
167
- return ListTile (
168
- title: Text (data.goodsName),
169
- trailing: GestureDetector (
170
- onTap: () => provider.collect (index),
171
- child: Icon (
172
- data.isCollection ? Icons .star : Icons .star_border),
173
- ),
174
- );
175
- },
176
- );
177
- },
178
- );
179
- },
169
+ return ListTile (
170
+ title: Text (data.goodsName),
171
+ trailing: GestureDetector (
172
+ onTap: () => provider.collect (index),
173
+ child: Icon (
174
+ data.isCollection ? Icons .star : Icons .star_border),
175
+ ),
176
+ );
177
+ },
178
+ );
179
+ },
180
+ );
181
+ },
182
+ ),
183
+ floatingActionButton: Consumer <GoodsListProvider >(
184
+ builder: (context, GoodsListProvider model, child) {
185
+ return FloatingActionButton (
186
+ child: Icon (Icons .add),
187
+ onPressed: () {
188
+ model.addAll ();
189
+ },
190
+ );
191
+ },
192
+ ),
180
193
),
181
194
);
182
195
}
0 commit comments