Flutter position stack widget in center

Matheus Mello
Matheus Mello
September 2, 2023
Cover Image for Flutter position stack widget in center

📝 Title: How to Position a Stack Widget in the Center Using Flutter


Hey there Flutter enthusiasts! 😄

Are you struggling with positioning a stack widget in the center of your Flutter app? Don't worry, we've got you covered! 🙌

A fellow Flutter developer reached out to us with a common issue: they had widgets in a stack but couldn't figure out how to position their button bar in the center bottom of the stack. No matter what alignment property they tried, the widget stubbornly stuck to the left side. Let's dive into their code and find an easy solution! 💪

Here's the code snippet provided by our developer friend:

new Positioned(
  bottom: 40.0,
  child: new Container(
    margin: const EdgeInsets.all(16.0),
    child: new Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        new Align(
          alignment: Alignment.bottomCenter,
          child: new ButtonBar(
            alignment: MainAxisAlignment.center,
            children: <Widget>[
              new OutlineButton(
                onPressed: () {
                  Navigator.push(
                    context,
                    new MaterialPageRoute(builder: (context) => new LoginPage()),
                  );
                },
                child: new Text(
                  "Login",
                  style: new TextStyle(color: Colors.white),
                ),
              ),
              new RaisedButton(
                color: Colors.white,
                onPressed: () {
                  Navigator.push(
                    context,
                    new MaterialPageRoute(builder: (context) => new RegistrationPage()),
                  );
                },
                child: new Text(
                  "Register",
                  style: new TextStyle(color: Colors.black),
                ),
              ),
            ],
          ),
        ),
      ],
    ),
  ),
)

After reviewing the code, it's clear that our developer friend has already tried numerous alignment options without success. But fear not, we have a simple solution that will do the trick! 😊

Instead of using the Align widget for alignment, we can use the Center widget. Here's how to modify the code:

new Positioned(
  bottom: 40.0,
  child: new Container(
    margin: const EdgeInsets.all(16.0),
    child: new Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        new Center( // Replace Align with Center
          child: new ButtonBar(
            alignment: MainAxisAlignment.center,
            children: <Widget>[
              new OutlineButton(
                onPressed: () {
                  Navigator.push(
                    context,
                    new MaterialPageRoute(builder: (context) => new LoginPage()),
                  );
                },
                child: new Text(
                  "Login",
                  style: new TextStyle(color: Colors.white),
                ),
              ),
              new RaisedButton(
                color: Colors.white,
                onPressed: () {
                  Navigator.push(
                    context,
                    new MaterialPageRoute(builder: (context) => new RegistrationPage()),
                  );
                },
                child: new Text(
                  "Register",
                  style: new TextStyle(color: Colors.black),
                ),
              ),
            ],
          ),
        ),
      ],
    ),
  ),
)

That's it! By replacing the Align widget with Center, the button bar will now be perfectly positioned in the center bottom of the stack. 🎉

We hope this simple solution helps you overcome your alignment struggles in Flutter. If you have any more questions or need further assistance, feel free to leave a comment below. Happy coding! 💻🚀


📢 Call-to-Action:

Have you ever struggled with positioning widgets in Flutter? Share your experiences with us in the comments below! We would love to hear your challenges and help you find solutions. Let's learn and grow together as a Flutter community! 👇

Take Your Tech Career to the Next Level

Our application tracking tool helps you manage your job search effectively. Stay organized, track your progress, and land your dream tech job faster.

Your Product
Product promotion

Share this article

More Articles You Might Like

Latest Articles

Cover Image for How can I echo a newline in a batch file?
batch-filenewlinewindows

How can I echo a newline in a batch file?

Published on March 20, 2060

🔥 💻 🆒 Title: "Getting a Fresh Start: How to Echo a Newline in a Batch File" Introduction: Hey there, tech enthusiasts! Have you ever found yourself in a sticky situation with your batch file output? We've got your back! In this exciting blog post, we

Cover Image for How do I run Redis on Windows?
rediswindows

How do I run Redis on Windows?

Published on March 19, 2060

# Running Redis on Windows: Easy Solutions for Redis Enthusiasts! 🚀 Redis is a powerful and popular in-memory data structure store that offers blazing-fast performance and versatility. However, if you're a Windows user, you might have stumbled upon the c

Cover Image for Best way to strip punctuation from a string
punctuationpythonstring

Best way to strip punctuation from a string

Published on November 1, 2057

# The Art of Stripping Punctuation: Simplifying Your Strings 💥✂️ Are you tired of dealing with pesky punctuation marks that cause chaos in your strings? Have no fear, for we have a solution that will strip those buggers away and leave your texts clean an

Cover Image for Purge or recreate a Ruby on Rails database
rakeruby-on-railsruby-on-rails-3

Purge or recreate a Ruby on Rails database

Published on November 27, 2032

# Purge or Recreate a Ruby on Rails Database: A Simple Guide 🚀 So, you have a Ruby on Rails database that's full of data, and you're now considering deleting everything and starting from scratch. Should you purge the database or recreate it? 🤔 Well, my