اذهب إلى المحتوى

السؤال

نشر

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

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

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,
                      )),
                )
            ),
          )
        ],
      ),
    );
  }
}

 

Recommended Posts

  • 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('الإجمالي'),
    ],
   ),
),

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...