Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

when I am running this code on a small device is overflowing flutter

This code is overflowing in the small devices in a flutter.

I want to make this screen responsive.

I am posting because it’s not been solved past 8 days

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

Below is my main.dart

import 'package:flutter/material.dart';
import 'package:mop_n_maid/utils/route_name.dart';
import 'package:smooth_page_indicator/smooth_page_indicator.dart';

const themeColor = Color(0xFF353E58);

class OnboardingPage extends StatefulWidget {
  const OnboardingPage({Key? key}) : super(key: key);
  @override
  _OnboardingPageState createState() => _OnboardingPageState();
}

class _OnboardingPageState extends State<OnboardingPage> {
  final controller = PageController();
  bool isLastPage = true;
  void dispose() {
    controller.dispose();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        padding: EdgeInsets.only(bottom: 80),
        child: PageView(
          controller: controller,
          onPageChanged: (index) {
            setState(() => isLastPage = index == 3);
          },
          children: [
            buildPage(
              color: Colors.white,
              urlImage: 'assets/images/extras/Helping.jpg',
              title: 'What do you look for when hiring a maid?',
            ),
            buildPage(
              color: Colors.white,
              urlImage: 'assets/images/extras/verified.jpg',
              title: 'Are your domestic helper verified?',
            ),
            buildPage(
              color: Colors.white,
              urlImage: 'assets/images/extras/changeplan.jpg',
              title: 'Changed plans because your maid coming late?',
            ),
            buildPage(
              color: Colors.white,
              urlImage: 'assets/images/extras/Solution.jpg',
              title: 'All Solutions at one stop!',
            ),
          ],
        ),
      ),
      bottomSheet: isLastPage
          ? TextButton(
              style: TextButton.styleFrom(
                primary: Colors.white,
                backgroundColor: themeColor,
                minimumSize: Size.fromHeight(80),
              ),
              onPressed: () {
                Navigator.pushReplacementNamed(context, MyRoutes.loginRoute);
              },
              child: const Text(
                'Get Started',
                style: TextStyle(fontSize: 24),
              ),
            )
          : Container(
              padding: const EdgeInsets.symmetric(horizontal: 10),
              height: 80,
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  TextButton(
                    onPressed: () {
                      controller.jumpToPage(3);
                    },
                    child: Text(
                      'SKIP',
                      style: TextStyle(color: themeColor),
                    ),
                  ),
                  Center(
                    child: SmoothPageIndicator(
                      controller: controller,
                      count: 4,
                      effect: WormEffect(
                        spacing: 16,
                        dotColor: Colors.black26,
                        activeDotColor: themeColor,
                      ),
                      onDotClicked: (index) => controller.animateToPage(
                        index,
                        duration: Duration(milliseconds: 500),
                        curve: Curves.easeIn,
                      ),
                    ),
                  ),
                  TextButton(
                    onPressed: () {
                      controller.nextPage(
                          duration: Duration(milliseconds: 500),
                          curve: Curves.easeInOut);
                    },
                    child: Text(
                      'NEXT',
                      style: TextStyle(
                        color: themeColor,
                      ),
                    ),
                  ),
                ],
              ),
            ),
    );
  }
}

Widget buildPage({
  required Color color,
  required String urlImage,
  required String title,
}) {
  return Container(
    color: color,
    child: Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Container(
          height: 400,
          child: Image.asset(
            urlImage,
            fit: BoxFit.cover,
            width: double.infinity,
          ),
        ),
        const SizedBox(
          height: 64,
        ),
        Padding(
          padding: const EdgeInsets.symmetric(horizontal: 20.0),
          child: Text(
            title,
            style: TextStyle(
              color: themeColor,
              fontSize: 25,
              fontWeight: FontWeight.bold,
            ),
          ),
        ),
      ],
    ),
  );
}

This image is showing my problem in detail

>Solution :

Try this

Widget buildPage({
  required Color color,
  required String urlImage,
  required String title,
}) {
  return Container(
    color: color,
    child: Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Container(
          height: MediaQuery.of(context).size.height * 0.4,
          child: Image.asset(
            urlImage,
            fit: BoxFit.cover,
            width: double.infinity,
          ),
        ),
        const SizedBox(
          height: 64,
        ),
        Padding(
          padding: const EdgeInsets.symmetric(horizontal: 20.0),
          child: Expanded(
          Text(
            title,
            style: TextStyle(
              color: themeColor,
              fontSize: 25,
              fontWeight: FontWeight.bold,
            )),
          ),
        ),
      ],
    ),
  );
}`enter code here`
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading