1

Check the Bottom White space

enter image description here

This below is the code of the Root widget. How to remove the empty area by default, and make this adaptable to every device?

@override
  Widget build(BuildContext context) {
    var padding = MediaQuery.of(context).padding;
    var height = MediaQuery.of(context).size.height;
    return Scaffold(
      backgroundColor: Colors.white,
      body: SingleChildScrollView(
        child: ConstrainedBox(
          constraints:
              BoxConstraints(minHeight: MediaQuery.of(context).size.height),
          // height: height,
          child: Stack(
            children: <Widget>[
              Form(
                key: _formKey,
                child: Column(
                  
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  mainAxisSize: MainAxisSize.max,
                  children: <Widget>[
                    SizedBox(
                      height: padding.top,
                    ),
                    Container(
                      alignment: Alignment.centerRight,
                      child: Padding(
                        padding: const EdgeInsets.only(right: 20, top: 20),
                        child: GestureDetector(
                          onTap: () {
                            print("Trouble Logging in?");
                          },
                          child: Text(
                            "Trouble logging in?",
                            style: TextStyle(
                              fontSize: 15,
                              color: Color.fromRGBO(8, 199, 68, 1),
                            ),
                          ),
                        ),
                      ),
                    ),
                    Container(
                      alignment: Alignment.topLeft,
                      child: Padding(
                        padding: const EdgeInsets.only(top: 30, left: 50),
                        child: Text(
                          "Login",
                          style: TextStyle(
                            fontSize: 50,
                            color: Color.fromRGBO(69, 69, 69, 1),
                          ),
                        ),
                      ),
                    ),
                    Container(
                      alignment: Alignment.centerLeft,
                      child: Padding(
                        padding:
                            const EdgeInsets.only(top: 50, left: 60, right: 40),
                        child: Row(
                          children: <Widget>[
                            Text(
                              "Email",
                              style: TextStyle(
                                fontSize: 18,
                                color: Color.fromRGBO(82, 93, 92, 1),
                              ),
                            ),
                            Expanded(
                              child: Container(),
                            ),
                            Visibility(
                              visible: emailError,
                              child: Text(
                                "Invalid Email",
                                style: TextStyle(
                                  color: Colors.red[400],
                                ),
                              ),
                            )
                          ],
                        ),
                      ),
                    ),
                    Container(
                      alignment: Alignment.center,
                      child: Padding(
                        padding:
                            const EdgeInsets.only(top: 10, left: 40, right: 40),
                        child: TextFormField(
                          validator: (_input) {
                            if (_input.isEmpty ||
                                !_input.contains("@") ||
                                !_input.contains(".")) {
                              return "Invalid Email";
                            }
                            return null;
                          },
                          controller: emailcontroller,
                          onChanged: (value) => {
                            setState(() {
                              email = value;
                            })
                          },
                          style: TextStyle(fontSize: 20),
                          decoration: InputDecoration(
                            contentPadding: EdgeInsets.symmetric(vertical: 13),
                            filled: true,
                            fillColor: emailError
                                ? Colors.red[100]
                                : Color.fromRGBO(246, 246, 246, 1),
                            prefixIcon: Icon(Icons.alternate_email),
                            border: OutlineInputBorder(
                                borderRadius: BorderRadius.circular(30)),
                            focusedBorder: OutlineInputBorder(
                                borderRadius: BorderRadius.circular(30)),
                          ),
                        ),
                      ),
                    ),
                    Container(
                      alignment: Alignment.centerLeft,
                      child: Padding(
                        padding:
                            const EdgeInsets.only(top: 30, left: 60, right: 40),
                        child: Row(
                          children: <Widget>[
                            Text("Password",
                                style: TextStyle(
                                    fontSize: 18,
                                    color: Color.fromRGBO(82, 93, 92, 1))),
                            Expanded(
                              child: Container(),
                            ),
                            Visibility(
                              visible: passwordError,
                              child: Text("Incorrect Password",
                                  style: TextStyle(color: Colors.red[400])),
                            )
                          ],
                        ),
                      ),
                    ),
                    Container(
                      alignment: Alignment.center,
                      child: Padding(
                        padding:
                            const EdgeInsets.only(top: 10, left: 40, right: 40),
                        child: TextFormField(
                          validator: (_input) {
                            if (_input.isEmpty || _input.length < 8) {
                              return "Invalid Password";
                            }
                            return null;
                          },
                          controller: passwordcontroller,
                          onChanged: (value) => {
                            setState(
                              () {
                                password = value;
                              },
                            )
                          },
                          obscureText: true,
                          style: TextStyle(fontSize: 20),
                          decoration: InputDecoration(
                            contentPadding: EdgeInsets.symmetric(vertical: 13),
                            filled: true,
                            fillColor: passwordError
                                ? Colors.red[100]
                                : Color.fromRGBO(246, 246, 246, 1),
                            prefixIcon: Icon(Icons.lock_outline),
                            suffixIcon: GestureDetector(
                              onTap: () => {
                                setState(() {
                                  hide = !hide;
                                })
                              },
                              child: Icon(
                                  hide
                                      ? Icons.visibility_off
                                      : Icons.visibility,
                                  color: Colors.black),
                            ),
                            border: OutlineInputBorder(
                              borderRadius: BorderRadius.circular(30),
                            ),
                            focusedBorder: OutlineInputBorder(
                              borderRadius: BorderRadius.circular(30),
                            ),
                          ),
                        ),
                      ),
                    ),
                    Container(
                      alignment: Alignment.centerRight,
                      child: Padding(
                        padding: const EdgeInsets.only(right: 60, top: 20),
                        child: GestureDetector(
                          onTap: null,
                          child: Text(
                            "Forgot password?",
                            style: TextStyle(
                              fontSize: 16,
                              color: Color.fromRGBO(8, 199, 68, 1),
                            ),
                          ),
                        ),
                      ),
                    ),
                    Padding(
                      padding: const EdgeInsets.only(top: 20),
                      child: Container(
                        width: 200,
                        decoration: BoxDecoration(
                            borderRadius: BorderRadius.circular(30),
                            gradient: LinearGradient(
                                colors: [
                                  Color.fromRGBO(3, 163, 99, 1),
                                  Color.fromRGBO(8, 199, 68, 1)
                                ],
                                begin: Alignment.centerLeft,
                                end: Alignment.centerRight)),
                        alignment: Alignment.center,
                        child: MaterialButton(
                          onPressed: () {
                            if (_formKey.currentState.validate()) {
                              signin();
                            }
                          },
                          // signin,
                          child: Row(
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: <Widget>[
                              Padding(
                                padding: const EdgeInsets.all(8.0),
                                child: Text("Log In",
                                    style: TextStyle(
                                        color: Colors.white, fontSize: 18)),
                              ),
                              Padding(
                                padding: const EdgeInsets.only(left: 10),
                                child: Icon(Icons.exit_to_app,
                                    color: Colors.white),
                              )
                            ],
                          ),
                        ),
                      ),
                    ),
                    Padding(
                        padding: EdgeInsets.only(top: 20),
                        child: Row(
                          mainAxisAlignment: MainAxisAlignment.center,
                          children: <Widget>[
                            Text("Don't have an account? ",
                                style: TextStyle(
                                    fontSize: 15, fontFamily: 'Mulish-Reg')),
                            GestureDetector(
                                onTap: () =>
                                    Navigator.of(context).push(register()),
                                child: Text("Sign up",
                                    style: TextStyle(fontSize: 15)))
                          ],
                        )),
                    Padding(
                        padding: EdgeInsets.only(top: 30, left: 30, right: 30),
                        child: Image.asset('assets/or.png')),
                    Padding(
                      padding: EdgeInsets.only(top: 30, bottom: 20),
                      child: Row(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: <Widget>[
                          Padding(
                            padding: const EdgeInsets.symmetric(horizontal: 20),
                            child: GestureDetector(
                              onTap: () => facebook(),
                              child: Image.asset(
                                'assets/fb.png',
                                scale: 2.5,
                              ),
                            ),
                          ),
                          Padding(
                            padding: const EdgeInsets.symmetric(horizontal: 20),
                            child: GestureDetector(
                              onTap: () => google(),
                              child: Image.asset(
                                'assets/google.png',
                                scale: 2.5,
                              ),
                            ),
                          ),
                        ],
                      ),
                    ),
                    // SizedBox(
                    //   height: padding.top,
                    // ),
                    Container(
                      width: double.maxFinite,
                      alignment: Alignment.bottomCenter,
                      child: Image.asset('assets/bottom.png'),
                    ),
                  ],
                ),
              ),
              loading
                  ? Container(
                      width: MediaQuery.of(context).size.width,
                      height: MediaQuery.of(context).size.height,
                      color: Colors.black26,
                      child: Center(
                        child: CircularProgressIndicator(
                          valueColor: AlwaysStoppedAnimation<Color>(
                            Color.fromRGBO(3, 163, 99, 1),
                          ),
                        ),
                      ),
                    )
                  : Positioned(
                      bottom: 0,
                      height: 0,
                      width: 0,
                      child: Container(),
                    ),
            ],
          ),
        ),
      ),
    );
  }
}

The bottom.png in the Container() in Stack is to be fixed at the bottom of the screen

Container(
                      width: double.maxFinite,
                      alignment: Alignment.bottomCenter,
                      child: Image.asset('assets/bottom.png'),
                    ),

this container I want to be at the bottom of the screen removing the white space at the end

0 Answers0