कैसे अद्यतन करने के लिए ऊंचा बटन पर शीर्षक में दबाया विशेष सूचकांक के ListView.बिल्डर

0

सवाल

यहाँ है मेरे कोड.

bool isAddedToCart = false;
return ListView.builder(
........
 ElevatedButton (
                        child: isAddedToCart? Text('Added to cart') : Text('Add to cart'),
                         style: ElevatedButton.styleFrom(
                           primary: Constants.primaryColor,
                           onPrimary: Constants.appColor
                         ),
                         onPressed: () async{
                           setState(() {
                             isAddedToCart = !isAddedToCart;
                           });
                           
                         },
                      
                       ),

समस्या यह है, अगर मैं उस पर क्लिक ऊंचा बटन पाठ के उस बटन को बदलने के लिए है कि सूचकांक केवल. लेकिन यह बदल रहा है में सभी सूचकांक में कर रहे हैं जो सूची दृश्य.बिल्डर.

कर सकते हैं किसी भी एक है इस के लिए एक समाधान है कि केवल एक बटन पर चयनित सूचकांक अद्यतन करने के लिए है के साथ नाम बदल दिया है.

flutter
2021-11-24 05:13:26
2

सबसे अच्छा जवाब

2

आप की जरूरत है रखने के लिए ध्वज isAddedToCart प्रत्येक अनुक्रमणिका के लिए. आप इसे प्राप्त कर सकते हैं का उपयोग करके एक Map. कुछ इस तरह:

// class variable scope.
Map<int, bool> isAddedToCartMap = {};

का उपयोग करें तो यह अपने विजेट में:

ElevatedButton (
    // if isAddedToCartMap[index] not found, use false as default value.
    child: isAddedToCartMap[index]??false ? Text('Added to cart') : Text('Add to cart'),
     style: ElevatedButton.styleFrom(
       primary: Constants.primaryColor,
       onPrimary: Constants.appColor
     ),
     onPressed: () async{
       setState(() {
         isAddedToCartMap[index] = !isAddedToCartMap[index]??false;
       });
       
     },
  
   ),
2021-11-24 05:24:43

अपने काम ठीक है, मैं एक dout.. कैसे अद्यतन करने के लिए एक ही करने के लिए बटन 'गाड़ी में जोड़ें' फिर से. उत्तर के लिए धन्यवाद @ישו אוהב אותך
H ă ɤ í
1

सभी आइटम थे पर निर्भर करता है isAddedToCart लेकिन आप की जरूरत स्टोर करने के लिए चयनित आइटम के साथ अलग-अलग अनुक्रमण

List<int> _selected_item = List();

 ElevatedButton(
              child: _selected_item.contains(index)
                  ? Text('Added to cart')
                  : Text('Add to cart'),
              style: ElevatedButton.styleFrom(),
              onPressed: () async {
                setState(() {
                  // remove or add index to _selected_item
                  if (_selected_item.contains(index))
                    _selected_item.remove(index);
                  else
                    _selected_item.add(index);
                  print(index);
                });
              },
            )

पूर्ण स्रोत कोड

ListView.builder(
          itemCount: 5,
          itemBuilder: (context, index) {
            return ElevatedButton(
              child: _selected_item.contains(index)
                  ? Text('Added to cart')
                  : Text('Add to cart'),
              style: ElevatedButton.styleFrom(),
              onPressed: () async {
                setState(() {
                  // remove or add index to _selected_item
                  if (_selected_item.contains(index))
                    _selected_item.remove(index);
                  else
                    _selected_item.add(index);
                  print(index);
                });
              },
            );
          })
2021-11-24 06:01:37

@GH आप कर सकते हैं बाहर की कोशिश करो यह मुझे आशा है कि, यह आप के लिए काम करेंगे
Jahidul Islam

कि सुपर था. thankyou.
H ă ɤ í

यह हो रही थी डिफ़ॉल्ट करने के लिए जब यह है reloading. हम यह कर सकते हैं मॉडल का उपयोग, यदि हां, तो कैसे?
H ă ɤ í

आप होना चाहिए इस लिंक का पालन करें stackoverflow.com/questions/57380673/...
Jahidul Islam

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में