Home > Enterprise >  how to add a MediaQuery to code properly?
how to add a MediaQuery to code properly?

Time:11-25

i have been struggling with this. when i first run it on my phone it shows perfectly, but on other phones it does not. so how can i apply it? i work on team and i didn't consider this.

this is the code

import 'dart:collection';
import 'package:sct/list/list.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:sct/dashbord/dashbord.dart';
import 'package:sct/list/list.dart';
import 'package:sct/view/screenbadriya2.dart';
import 'package:expandable/expandable.dart';
import 'package:sct/setting/colors.dart';
import 'package:sizer/sizer.dart';

class Badriya3 extends StatefulWidget {
  @override
  State<Badriya3> createState() => _Badriya3State();
}

class _Badriya3State extends State<Badriya3> {
  var dummy;
  @override
  void initState() {
    super.initState();
    dummy = _getimages();
    print("data ${dummy}");
  }

  _getimages() async {
    var imagelist = await list;
    print(imagelist);
    return imagelist;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        // appBar: AppBar(
        //   backgroundColor: AhotColors.primary1,
        //   toolbarHeight: 200,
        //   shape: RoundedRectangleBorder(
        //     borderRadius: BorderRadius.vertical(
        //       bottom: Radius.circular(50),
        //     ),
        //   ),
        // ),
        body: ListView(
          
          
      physics: ScrollPhysics(), children: [
      Stack(children: [
        Container(
          child: Stack(
            children: [
              Container(
                decoration: BoxDecoration(
                    gradient: LinearGradient(
                        colors: [AhotColors.secondary3, AhotColors.primary2],
                        begin: Alignment.topLeft,
                        end: Alignment.bottomRight)),
                height: 200,
              ),
              Icon(Icons.arrow_back)
            ],
          ),
        ),
        SingleChildScrollView(
          child:
              Column(crossAxisAlignment: CrossAxisAlignment.start, children: <
                  Widget>[
            const Padding(
              padding: EdgeInsets.symmetric(horizontal: 10, vertical: 50),
            ),
            SizedBox(
                width: 500,
                height: 150,
                child: Container(
                  child: Padding(
                    padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
                    child: Card(
                        color: AhotColors.primary1,
                        child: Stack(
                          fit: StackFit.expand,
                          clipBehavior: Clip.antiAliasWithSaveLayer,
                          overflow: Overflow.visible,
                          children: [
                            Positioned(
                              bottom: 60,
                              left: 140,
                              child: CircleAvatar(
                                child: ClipOval(
                                  child: Image.asset(
                                    "assets/images/guy.jpg",
                                    width: 300,
                                    height: 100,
                                    fit: BoxFit.cover,
                                  ),
                                ),
                                backgroundColor: Colors.transparent,
                                radius: 50,
                              ),
                            ),
                            Positioned(
                                bottom: 25,
                                left: 120,
                                child: Column(children: [
                                  Text(
                                    "the name of the owner",
                                    style: TextStyle(
                                      fontWeight: FontWeight.w700,
                                      fontStyle: FontStyle.italic,
                                      fontSize: 20,
                                      color: Colors.white,
                                    ),
                                  ),
                                  Text("Mohamed haddad",
                                      style: TextStyle(
                                        fontWeight: FontWeight.w300,
                                        fontStyle: FontStyle.italic,
                                        color: Colors.white,
                                      )),
                                ])),
                            Positioned(
                                bottom: 10,
                                left: 25,
                                child: Row(
                                  mainAxisAlignment:
                                      MainAxisAlignment.spaceEvenly,
                                  children: [
                                    Text(
                                      "Year of Experience: ",
                                      style: TextStyle(
                                        fontWeight: FontWeight.w500,
                                        fontStyle: FontStyle.italic,
                                        color: Colors.white,
                                      ),
                                    ),
                                    SizedBox(width: 160),
                                    Text("Country: ",
                                        style: TextStyle(
                                          fontWeight: FontWeight.w500,
                                          fontStyle: FontStyle.italic,
                                          color: Colors.white,
                                        )),
                                  ],
                                )),
                          ],
                        ),
                        shape: RoundedRectangleBorder(
                          borderRadius: BorderRadius.circular(15),
                        ),
                        elevation: 15),
                  ),
                )),
            SingleChildScrollView(
              child: FutureBuilder(
                  future: _getimages(),
                  builder: (context, AsyncSnapshot snapshot) {
                    if (snapshot.hasError) print(snapshot.error);
                    return snapshot.hasData
                        ? Expanded(
                            child: Column(
                              children: <Widget>[
                                Padding(
                                  padding: const EdgeInsets.symmetric(
                                      horizontal: 10, vertical: 5),
                                ),
                                Container(
                                  height: 100,
                                  width: 500,
                                  child: ListView.builder(
                                      scrollDirection: Axis.horizontal,
                                      shrinkWrap: true,
                                      padding: const EdgeInsets.all(25),
                                      itemCount: snapshot.data.length,
                                      itemBuilder: (context, index) {
                                        List resList = snapshot.data;
                                        return Card(
                                          child: Center(
                                            child: Container(
                                              child: ClipRRect(
                                                  borderRadius:
                                                      BorderRadius.circular(20),
                                                  child: Image.asset(
                                                    resList[index].toString(),
                                                    fit: BoxFit.cover,
                                                    width: 50,
                                                    height: 100,
                                                  )),
                                            ),
                                          ),
                                          elevation: 10,
                                          shape: RoundedRectangleBorder(
                                            borderRadius:
                                                BorderRadius.circular(15),
                                          ),
                                        );
                                      }),
                                ),
                              ],
                            ),
                          )
                        : Center(child: CircularProgressIndicator());
                  }),
            ),
            ListView(
              physics: ScrollPhysics(),
              scrollDirection: Axis.vertical,
              shrinkWrap: true,
              padding: const EdgeInsets.all(20),
              children: [
                Padding(
                  padding:
                      const EdgeInsets.symmetric(horizontal: 10, vertical: 5),
                ),
                Container(
                  child: Card(
                    child: Column(
                      children: <Widget>[
                        Container(
                          child: Column(children: <Widget>[
                            ExpandablePanel(
                                header: Text(
                                  "    Name of the Company",
                                  maxLines: 1,
                                  textAlign: TextAlign.left,
                                  style: TextStyle(
                                      fontWeight: FontWeight.w700,
                                      fontSize: 25),
                                ),
                                expanded: Align(
                                  alignment: Alignment.bottomRight,
                                  child: ListTile(
                                    title: Text(
                                      "name",
                                      softWrap: true,
                                    ),
                                    leading: Icon(Icons.person),
                                  ),
                                ),
                                collapsed: Align(
                                    alignment: Alignment.centerRight,
                                    child: Text(
                                      "See more",
                                      textAlign: TextAlign.center,
                                    ))),
                            Container(
                              padding: const EdgeInsets.only(
                                left: 16,
                                bottom: 16,
                              ),
                              child: ListView(
                                physics: ScrollPhysics(),
                                scrollDirection: Axis.vertical,
                                shrinkWrap: true,
                                children: [
                                  ListTile(
                                    title: Text("data 1"),
                                    leading: Icon(Icons.favorite),
                                    subtitle: Text("information 1"),
                                  ),
                                  ListTile(
                                    title: Text("data 2"),
                                    leading: Icon(Icons.library_books_rounded),
                                    subtitle: Text("information 2"),
                                  ),
                                  ListTile(
                                    title: Text("data 3"),
                                    leading: Icon(Icons.ballot_outlined),
                                    subtitle: Text("information 3"),
                                  ),
                                  ListTile(
                                    title: Text("data 4"),
                                    leading: Icon(Icons.air_outlined),
                                    subtitle: Text("information 4"),
                                  ),
                                ],
                              ),
                            ),
                          ]),
                          decoration: BoxDecoration(
                              gradient: LinearGradient(
                                  colors: [
                                AhotColors.secondary3,
                                AhotColors.primary2
                              ],
                                  begin: Alignment.topLeft,
                                  end: Alignment.bottomRight)),
                        )
                      ],
                    ),
                    shape: RoundedRectangleBorder(
                      borderRadius: BorderRadius.circular(10),
                    ),
                    elevation: 10,
                  ),
                ),
                Padding(
                  padding:
                      const EdgeInsets.symmetric(horizontal: 10, vertical: 10),
                ),
                Card(
                  color: AhotColors.primary3,
                  child: Column(children: <Widget>[
                    Container(
                      child: Column(children: <Widget>[
                        ExpandablePanel(
                            header: Text(
                              "    Majors",
                              maxLines: 1,
                              textAlign: TextAlign.left,
                              style: TextStyle(
                                  fontWeight: FontWeight.w700, fontSize: 25),
                            ),
                            expanded: ListTile(
                              title: Text(
                                "major",
                                softWrap: true,
                              ),
                              leading: Icon(Icons.file_copy),
                            ),
                            collapsed: Align(
                                alignment: Alignment.centerRight,
                                child: Text(
                                  "See more",
                                  textAlign: TextAlign.center,
                                ))),
                        Container(
                          padding: const EdgeInsets.only(
                            left: 16,
                            bottom: 16,
                          ),
                          child: ListView(
                            physics: ScrollPhysics(),
                            scrollDirection: Axis.vertical,
                            shrinkWrap: true,
                            children: [
                              ListTile(
                                title: Text("data 1"),
                                leading: Icon(Icons.favorite),
                                subtitle: Text("information 1"),
                              ),
                              ListTile(
                                title: Text("data 2"),
                                leading: Icon(Icons.library_books_rounded),
                                subtitle: Text("information 2"),
                              ),
                              ListTile(
                                title: Text("data 3"),
                                leading: Icon(Icons.ballot_outlined),
                                subtitle: Text("information 3"),
                              ),
                              ListTile(
                                title: Text("data 4"),
                                leading: Icon(Icons.air_outlined),
                                subtitle: Text("information 4"),
                              ),
                            ],
                          ),
                        )
                      ]),
                      decoration: BoxDecoration(
                          gradient: LinearGradient(colors: [
                        AhotColors.secondary3,
                        AhotColors.primary2
                      ], begin: Alignment.topLeft, end: Alignment.bottomRight)),
                    )
                  ]),
                  shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(10),
                  ),
                  elevation: 10,
                ),
              ],
            )
          ]),
        )
      ]),
    ]));
  }
}

this is the picture:

enter image description here

this is how i want it to be

enter image description here

CodePudding user response:

 if you want custom half of screen size etc just use like this

MediaQuery.of(context).size.height/1.5 for more information wath my vidoes on youtube vist: https://www.youtube.com/c/ComputerCode

CodePudding user response:

here is a list of packages for creating a responsive UI.
[1]: https://pub.dev/packages/flutter_screenutil
[2]: https://pub.dev/packages/flutter_bootstrap
[3]: https://pub.dev/packages/responsive_builder
[4]: https://pub.dev/packages/responsive_sizer
[5]: https://pub.dev/packages/sizer
[6]: https://pub.dev/packages/layout

CodePudding user response:

in your widget like Container, SizeBox, Padding all about height and width you can change value with MediaQuery.of(context).size.height / 1.0 for 1.0 its mean device ratio with your phone screen, so you can put value with your own custom size for your device

if you want more simple I recommendation sizer package for responsive your app in mode Tablet, Ios, Android and other device ratio smartphone, this package have include complex documentation for responsive your widget in other device

good luck, happy coding!!

  • Related