• 0

حساب السعر الإجمالي لسلة المشتريات في فلاتر

لدي مشكلة في كود فلاتر لحساب السعر الإجمالي لجميع المنتجات التي اشتراها العميل في تطبيقي وعندما اشتراها إذا كان يريد رؤية منتجاته ، فيجب أن تكون في عربة التسوق ، هذا هو الكود الخاص بي

لعدد المنتجات:

import 'package:flutter/material.dart';
class PanierCompte extends StatefulWidget {
  @override
  _PanierCompteState createState() => _PanierCompteState();
}

class _PanierCompteState extends State<PanierCompte> {
  int numItem = 1;
  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.symmetric(vertical: 20),
      child: Row(
        children: <Widget>[
          buildOutLineButton(
              icon: Icons.remove_circle_outline_outlined,
              press: () {
                if (numItem > 0) {
                  setState(() {
                    numItem--;
                  });
                }
              }
          ),
          Padding(
            padding: const EdgeInsets.symmetric(horizontal: 20.0/2),
            child: Text(
              numItem.toString().padLeft(2,"0"),
              style: Theme.of(context).textTheme.headline6,
            ),
          ),
          buildOutLineButton(
            icon: Icons.add_circle_outline_outlined,
            press: () {
              setState(() {
                numItem++;
              });
            },
          ),
        ],
      ),
    );
  }
  SizedBox buildOutLineButton({IconData icon, Function press}){
    return SizedBox(
      width: 40,
      height: 32,
      child: OutlineButton(
        padding: EdgeInsets.zero,
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(14)),
        onPressed: press,
        child: Icon(icon),
      ),
    );
  }
}

لزر أضف إلى عربة التسوق:

import 'package:bec_restau/Norriture.dart';
import 'package:bec_restau/Panier.dart';
import 'package:flutter/material.dart';
import 'PanierCompte.dart';
class AddToCart extends StatefulWidget {
  @override
  _AddToCartState createState() => _AddToCartState();
}
class _AddToCartState extends State<AddToCart> {
   Norriture foo;
   PanierCompte numItem;
   double PrixTotal;
  @override
  Widget build(BuildContext context) {
    return             Padding(
      padding: const EdgeInsets.symmetric(vertical: 50),
      child: Row(
        children: <Widget>[
          Container(
            margin: EdgeInsets.only(right: 20.0),
            height: 50,
            width: 58,
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular((20)),
              border: Border.all(color: Colors.indigo),
            ),
            child: IconButton(
              icon: Icon(Icons.add_shopping_cart,color:Colors.indigoAccent),
              onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (context) => Panier())),
            ),
          ),
          Expanded(
            child: SizedBox(
                height: 50,
                child: FlatButton(
                  shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(18),
                  ),
                  color: Colors.indigo,
                  onPressed: (){},
                  child: Text('Ajouter au panier'.toUpperCase(),
                      style: TextStyle(
                        fontSize: 17,
                        fontWeight: FontWeight.bold,
                      )),
                )
            ),
          )
        ],
      ),
    );
  }
}

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

سأقوم بوضع مثال , يمكنك متغير لوضع السعر الإجمالي فيه فيكون كالتالي 

int sum = 0;

ومن ثم وضع متغير List لتخزين بيانات cart بداخله 

List<Cart> ListCart=[];

ثم بداخل FutureBuilder 

FutureBuilder(
  future: myCart,
  builder: (context, snapshot) {
  if (snapshot.hasData) {
  ListCart = snapshot.data;
  ListCart.forEach((element) {
  setState((){

  sum = sum + element.price;

  });

	});
	}
	return Container();

});

ثم يمكنك جلب السعر النهائي 

Container(
  padding: EdgeInsets.all(10),
  child: Row(
  children: <Widget>[
    Text('$sum'),
    SizedBox(
    	width: 10,
    ),
    Text('الإجمالي'),
    ],
   ),
),

هل يمكنك رفع ملفات مشروعك بشكل مضغوط لمساعدتك بشكل أكبر, فالأكواد هكذا تكون ناقصة وبها مشاكل.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن