我如何使用媒体查询来解决以下问题

如何解决我如何使用媒体查询来解决以下问题

以下颤动代码在6英寸屏幕尺寸上可以完美运行,但只要它在小于6英寸的设备上运行,它就会显示XYZ像素溢出。.我该如何解决此问题,或者是否有任何小部件来解决此问题。 我已经通过使用Media Query将容器的宽度添加为屏幕的宽度,但在较小的设备上其显示仍然溢出

这是我的代码

import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/services.dart';
import 'package:kartofill/Homepagewithprice/Homepagewithprice.dart';
import 'package:kartofill/Navigatorpage.dart';
import 'package:fluttertoast/fluttertoast.dart';


dynamic totalCartValue =0;

class Cartpage extends StatefulWidget {

  @override
  _CartpageState createState() => _CartpageState();

}


class _CartpageState extends State<Cartpage> {

  String phoneNumber;
  final myController = TextEditingController();  ///Alert Dialog box input text myController will be use to store the number of qty
  String id;
  var qty;
  var price;
  var total;
  bool qtyUpdated= false;

  Future<String> getCartTotal() async {
    totalCartValue = 0;

    final fireBase = await FirebaseAuth.instance.currentUser();
    print(fireBase.phoneNumber);
    QuerySnapshot snapshot = await Firestore.instance
        .collection('users').document(fireBase.phoneNumber)
    .collection('cart').getDocuments();



    snapshot.documents.forEach((doc) {

      print(doc.data['total'].toString());
      setState((){

        totalCartValue += doc.data['total'];
      });
    });
    return totalCartValue.toString();
  }


  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    getCurrentUser();
    print("Hi $phoneNumber");



    getCartTotal();
    print("Hi $totalCartValue");

  }
  getCurrentUser() async{

    final firebaseUser = await FirebaseAuth.instance.currentUser();
    setState(() {
      phoneNumber = firebaseUser.phoneNumber;
    });


  }




  @override
  Widget build(BuildContext context) {

    return MaterialApp(
     debugShowCheckedModeBanner: false,home:Scaffold(
          bottomNavigationBar:
          StreamBuilder(
              stream: Firestore.instance.collection('users').document(phoneNumber)
                  .collection('cart').snapshots(),builder: (context,snapshot) {
                if(snapshot.hasData) {
                  if(snapshot.data.documents.length!=0){
                  return new Container( //// Bottom Naviagtion Bar for check out and Total price
                    color: Colors.white,child: Row(
                      children: <Widget>[
                        Checkoutclass(),Expanded(
                          child: ListTile(
                            title: Text('Total'),subtitle: Text(totalCartValue.toStringAsFixed(2)),),)
                      ],);}
                  else return Container(
                    height: 100,);
                }
                else{
                  return Text('Loading');
                }
            }
          ),appBar: AppBar(
            leading: IconButton(icon: Icon(Icons.arrow_back),onPressed: (){

                  Navigator.pop(context);

                }),title: Text('Kart-Ofill'),backgroundColor: Colors.red,body: Container(
            width: MediaQuery.of(context).size.width,child: StreamBuilder(
              stream: Firestore.instance.collection('users').document(phoneNumber)
                  .collection('cart').snapshots(),snapshot){
            if(snapshot.hasData){
              if(snapshot.data.documents.length!=0) {
                return ListView.builder(
                  itemCount: snapshot.data.documents.length,itemBuilder: (context,index) {
                    DocumentSnapshot doc = snapshot.data.documents[index];

                    return Container(
                      height: 200,child: Card(

                        child: Row(
                          children: <Widget>[
                            Card(child: Image.network(
                              doc['img'],height: 100,width: 100,elevation: 10,Column(
                              children: <Widget>[
                                Container(
                                    height: MediaQuery
                                        .of(context)
                                        .size
                                        .height / 15,width: MediaQuery
                                        .of(context)
                                        .size
                                        .width / 1.5,color: Colors.white,child: Text(doc['description'] + "Rs " +
                                        doc['price'].toStringAsFixed(2),style: TextStyle(fontSize: 15),)),Center(child: Text(
                                    'Rs ' + doc['total'].toStringAsFixed(2))),Row(
                                  children: <Widget>[
                                    RaisedButton(
                                      color: Colors.grey,onPressed: () {
                                        showDialog(context: context,barrierDismissible: false,builder: (BuildContext context) {
                                              return Dialog(

                                                child: Container(
                                                  height: 250,color: Colors.white10,child: Container(
                                                    margin: EdgeInsets.all(40.0),child: Column(
                                                      children: <Widget>[
                                                        TextField(
                                                          inputFormatters: [
                                                            new BlacklistingTextInputFormatter(
                                                                new RegExp(
                                                                    '[\\.|\\,|\\-|\\ ]'))
                                                          ],controller: myController,keyboardType: TextInputType
                                                              .number,decoration: InputDecoration(
                                                              hintText: 'Enter the Quantity'),Container(
                                                          height: 50,Row(
                                                          children: <Widget>[
                                                            Padding(
                                                              padding: const EdgeInsets
                                                                  .all(8.0),child: RaisedButton(

                                                                child: Text(
                                                                  'Close',style: TextStyle(
                                                                      color: Colors
                                                                          .white),color: Colors.red,onPressed: () {
                                                                  Navigator.pop(
                                                                      context);
                                                                  myController
                                                                      .clear();
                                                                },SizedBox(width: 25,RaisedButton(

                                                              color: Colors.red,child: Text(
                                                                'Submit',style: TextStyle(
                                                                    color: Colors
                                                                        .white),onPressed: () async {
                                                                qty = myController
                                                                    .text;


                                                                if (int.parse(
                                                                    qty) > 0 &&
                                                                    int.parse(
                                                                        qty) >=
                                                                        5 &&
                                                                    int.parse(
                                                                        qty) <=
                                                                        25) {
                                                                  setState(() {
                                                                    qtyUpdated =
                                                                    true;
                                                                    totalCartValue =
                                                                    0;
                                                                  });
                                                                  CollectionReference col = Firestore
                                                                      .instance
                                                                      .collection(
                                                                      'users')
                                                                      .document(
                                                                      phoneNumber)
                                                                      .collection(
                                                                      'cart');


                                                                  QuerySnapshot querySnapshot = await col
                                                                      .getDocuments();
                                                                  querySnapshot
                                                                      .documents[index]
                                                                      .reference
                                                                      .updateData(
                                                                      {
                                                                        "quantity": qty
                                                                      });

                                                                  price =
                                                                  doc['price'];
                                                                  total =
                                                                      int.parse(
                                                                          qty) *
                                                                          price;
                                                                  querySnapshot
                                                                      .documents[index]
                                                                      .reference
                                                                      .updateData(
                                                                      {
                                                                        "total": total
                                                                      });
                                                                  //================///====================//
                                                                  QuerySnapshot snapshot = await Firestore
                                                                      .instance
                                                                      .collection(
                                                                      'users')
                                                                      .document(
                                                                      phoneNumber)
                                                                      .collection(
                                                                      'cart')
                                                                      .getDocuments();

                                                                  if (qtyUpdated) {
                                                                    snapshot
                                                                        .documents
                                                                        .forEach((
                                                                        doc) {
                                                                      setState(() {
                                                                        totalCartValue +=
                                                                        doc
                                                                            .data['total'];
                                                                        qtyUpdated =
                                                                        false;
                                                                      });
                                                                    });
                                                                  }


                                                                  print(
                                                                      myController
                                                                          .toString());
                                                                  Navigator.of(
                                                                      context)
                                                                      .pop();

                                                                  Fluttertoast
                                                                      .showToast(
                                                                      msg: "Quantity Updated",toastLength: Toast
                                                                          .LENGTH_LONG,gravity: ToastGravity
                                                                          .CENTER,timeInSecForIosWeb: 1,backgroundColor: Colors
                                                                          .red,textColor: Colors
                                                                          .white,fontSize: 16.0
                                                                  );

                                                                  myController
                                                                      .clear();
                                                                }
                                                                else
                                                                if (int.parse(
                                                                    qty) < 5 ||
                                                                    int.parse(
                                                                        qty) <
                                                                        0) {
                                                                  Fluttertoast
                                                                      .showToast(
                                                                      msg: "Minimum 5 quantites",toastLength: Toast
                                                                          .LENGTH_SHORT,fontSize: 16.0
                                                                  );
                                                                  myController
                                                                      .clear();
                                                                }


                                                                else
                                                                if (int.parse(
                                                                    qty) > 25) {
                                                                  Fluttertoast
                                                                      .showToast(
                                                                      msg: "Maximun 25 quantites",fontSize: 16.0
                                                                  );
                                                                  myController
                                                                      .clear();
                                                                }
                                                              },],)
                                                      ],);
                                            });
                                      },child: Text('Add Quanity'),SizedBox(
                                      width: 60,RaisedButton(
                                      child: Text('Delete'),onPressed: () async {
                                        CollectionReference col = Firestore
                                            .instance.collection('users')
                                            .document(phoneNumber).collection(
                                            'cart');


                                        QuerySnapshot querySnapshot = await col
                                            .getDocuments();
                                        querySnapshot
                                            .documents[index]
                                            .reference
                                            .delete();
                                        getCartTotal();
                                        Fluttertoast.showToast(
                                            msg: "Item Deleted",toastLength: Toast.LENGTH_SHORT,gravity: ToastGravity.CENTER,textColor: Colors.white,fontSize: 16.0
                                        );
                                      },Padding(
                                  padding: const EdgeInsets.only(right: 150),child: Text(doc['quantity'].toString()),)
                              ],);
                  },);
              }
              else {
                return Noitems();
              }
            }
            else{
              return Text ('Loading Kart Details...');
            }
            },);
  }
}
class Checkoutclass extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Expanded(
      child: MaterialButton(onPressed:() {

          print("CheckoutClass");
        //====Navigator=======//
       /* Navigator.push(context,MaterialPageRoute(builder: (context)=>CheckoutScreen(totalQuantity:totalCartValue)));
            */
      },child: Text("Check Out",style: TextStyle(color: Colors.white),);
  }
}

class Noitems extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,home: Scaffold(

        body: Center(
          child: Container(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[

                Icon(Icons.hourglass_empty,size: 100,SizedBox(height: 20,Text('Your cart is empty',style: TextStyle(fontSize: 25),RaisedButton(
                    onPressed: (){

                      Navigator.push(context,MaterialPageRoute(builder: (context)=>Homepagewithprice()));


                    },color:Colors.red,child:Text('Browse Products',)



                )


              ],);
  }
}



版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res