我正在做一个包含产品的Flutter应用程序,我需要做的是能够增加并获取要存储的增加产品的密钥,当前它们正在全部增加。
我留下图片和代码,感谢您的帮助
按下添加图标时,增加两个计数器的乘积
Widget _buildSearchResults() { return new ListView.builder( itemCount: _productSearchResult.length, itemBuilder: (context, i) { return new Card( child: Column( children: <Widget>[ ExpansionTile( leading: new CircleAvatar( backgroundImage: new NetworkImage(_productSearchResult[i].image_url), ), title: new Text( '${_productSearchResult[i].name} \nPrecio: Q${_productSearchResult[i].price} / Medida: ${_productSearchResult[i].unit } ', ), children: <Widget>[ Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ new Container( child: new IconButton( icon: new Icon(Icons.remove), highlightColor: Colors.green, onPressed: (){ _removeProduct(); }, ), ), new Container( child: new Text('$_counter', style: Theme.of(context).textTheme.display1,), ), new Container( child: new IconButton( icon: new Icon(Icons.add), highlightColor: Colors.green, onPressed: (){ _addProduct(); }, ), ), new Container( padding: new EdgeInsets.all(10.0), width: 100.0, child: new RaisedButton( padding: const EdgeInsets.all(8.0), textColor: Colors.white, color: Colors.green, onPressed: _addNumbers, child: new Text("Agregar"), ), ), ] ), ] ), ], ) ); }, );
}
_removeProduct() { setState(() { if (_counter > 0) { _counter--; } });
_addProduct() { setState(() { _counter++; });
您的所有产品都有一个计数器,这就是为什么它对所有产品都显示相同的价值。您需要在_productSearchResult模型中添加计数器,然后在其中增加计数器。而不是显示
Text('$_counter',
您将显示
Text('${_productSearchResult[i].counter}',
然后,您将更改addProduct方法以获取索引,以便增加每个产品的计数器。
_addProduct(int index) { setState(() { _productSearchResult[index].counter++; });
与删除产品相同。