Search code examples
flutterdartflutter-layoutflutter-web

Text inside container was overflow when minimize screen in flutter


I have a container with width MediaQuery.of(context).size.width / 1.75.When I minimize screen size text inside the container is overflowing.

This is the output I got now:

enter image description here

class ProfileTopPortion extends StatelessWidget {
  const ProfileTopPortion({
    Key? key,
  }) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: Column(
        children: [
          Padding(
            padding: const EdgeInsets.all(18.0),
            child: Container(
              width: MediaQuery.of(context).size.width / 1.75,
              decoration: BoxDecoration(
                border: Border.all(color: Color(0xffEBEBEB), width: 0.4),
                color: Color(0xfffbfbfa),
              ),
              child: Row(
                mainAxisSize: MainAxisSize.max,
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Padding(
                    padding: const EdgeInsets.only(left: 20.0),
                    child: MouseRegion(
                      cursor: SystemMouseCursors.click,
                      child: GestureDetector(
                          onTap: () {
                            //  Get.toNamed('/events',arguments: 0);
                          },
                          child: Padding(
                            padding: const EdgeInsets.only(top: 0.0),
                            child: SvgPicture.asset(
                              allowDrawingOutsideViewBox: true,
                              Images.avatar,
                            ),
                          )),
                    ),
                  ),
                  SizedBox(
                    width: 20,
                  ),
                  Column(
                    // mainAxisAlignment: MainAxisAlignment.start,
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      Text(
                        'First Name',
                      ),
                      SizedBox(
                        height: 6,
                      ),
                      Text(
                        'Engineer',
                      ),
                      SizedBox(
                        height: 20,
                      ),
                      Row(
                        children: [
                          Column(
                            // mainAxisAlignment: MainAxisAlignment.start,
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                              Text(
                                'Email',
                              ),
                              SizedBox(
                                height: 10,
                              ),
                              Text(
                                'Organization',
                              ),
                            ],
                          ),
                          SizedBox(
                            width: 30,
                          ),
                          Column(
                            mainAxisSize: MainAxisSize.min,
                            // mainAxisAlignment: MainAxisAlignment.start,
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                              Text(
                                'testEmail1235@gmail.com',
                              ),
                              SizedBox(
                                height: 10,
                              ),
                              Text("Test12346@gma.com"),
                            ],
                          )
                        ],
                      ),
                      SizedBox(
                        height: 25,
                      ),
                    ],
                  ),
                ],
              ),
            ),
          ),
        ],
      ),
    );
  }
}

I tried flexible and expanded widgets but nothing works.


Solution

  • You need to use Expanded in two widget, try this:

    Padding(
            padding: const EdgeInsets.all(18.0),
            child: Container(
              width: MediaQuery.of(context).size.width / 1.75,
              decoration: BoxDecoration(
                border: Border.all(color: Color(0xffEBEBEB), width: 0.4),
                color: Color(0xfffbfbfa),
              ),
              child: Row(
                mainAxisSize: MainAxisSize.max,
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Padding(
                    padding: const EdgeInsets.only(left: 20.0),
                    child: MouseRegion(
                      cursor: SystemMouseCursors.click,
                      child: GestureDetector(
                          onTap: () {
                            //  Get.toNamed('/events',arguments: 0);
                          },
                          child: Padding(
                              padding: const EdgeInsets.only(top: 0.0),
                              child: SvgPicture.asset(
                                 allowDrawingOutsideViewBox: true,
                                 Images.avatar,
                              ),
                             )),
                    ),
                  ),
                  SizedBox(
                    width: 20,
                  ),
                  Expanded(//<---- add this
                    child: Column(
                      // mainAxisAlignment: MainAxisAlignment.start,
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Text(
                          'First Name',
                        ),
                        SizedBox(
                          height: 6,
                        ),
                        Text(
                          'Engineer',
                        ),
                        SizedBox(
                          height: 20,
                        ),
                        Row(
                          children: [
                            Column(
                              // mainAxisAlignment: MainAxisAlignment.start,
                              crossAxisAlignment: CrossAxisAlignment.start,
                              children: [
                                Text(
                                  'Email',
                                ),
                                SizedBox(
                                  height: 10,
                                ),
                                Text(
                                  'Organization',
                                ),
                              ],
                            ),
                            SizedBox(
                              width: 30,
                            ),
                            Expanded(//<---- add this
                              child: Column(
                                mainAxisSize: MainAxisSize.min,
                                // mainAxisAlignment: MainAxisAlignment.start,
                                crossAxisAlignment: CrossAxisAlignment.start,
                                children: [
                                  Text(
                                    'testEmail1235@gmail.com',
                                    overflow: TextOverflow.ellipsis,//<---- add this
                                  ),
                                  SizedBox(
                                    height: 10,
                                  ),
                                  Text(
                                    "Test12346@gma.com",
                                    overflow: TextOverflow.ellipsis,//<---- add this
                                  ),
                                ],
                              ),
                            )
                          ],
                        ),
                        SizedBox(
                          height: 25,
                        ),
                      ],
                    ),
                  ),
                ],
              ),
            ),
          ),