Bird
Raised Fist0
Fluttermobile~5 mins

MainAxisAlignment and CrossAxisAlignment in Flutter - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does MainAxisAlignment control in a Flutter Row or Column?

MainAxisAlignment controls how the children are placed along the main axis, which is horizontal for Row and vertical for Column.

Click to reveal answer
beginner
What is the main difference between MainAxisAlignment and CrossAxisAlignment?

MainAxisAlignment aligns children along the main axis (horizontal in Row, vertical in Column), while CrossAxisAlignment aligns children along the cross axis (vertical in Row, horizontal in Column).

Click to reveal answer
intermediate
What does MainAxisAlignment.spaceBetween do?

It places the children so that the first child is at the start, the last child is at the end, and the remaining space is evenly distributed between the children.

Click to reveal answer
intermediate
How does CrossAxisAlignment.stretch affect children in a Column?

It makes the children expand to fill the maximum width available along the cross axis (horizontal axis in a Column).

Click to reveal answer
beginner
If you want to center children both horizontally and vertically in a Column, which properties would you set?

Set MainAxisAlignment.center to center vertically and CrossAxisAlignment.center to center horizontally.

Click to reveal answer
In a Row, which axis does MainAxisAlignment control?
ANeither axis
BHorizontal axis
CBoth axes
DVertical axis
What does CrossAxisAlignment.start do in a Column?
AAligns children to the left
BAligns children to the right
CAligns children to the top
DAligns children to the bottom
Which MainAxisAlignment value evenly spaces children including start and end edges?
AspaceEvenly
BspaceAround
CspaceBetween
Dcenter
If children in a Row have different heights, which CrossAxisAlignment makes them all match the tallest child?
Astart
Bcenter
Cstretch
Dend
Which property would you use to push all children to the end of a Column?
ACrossAxisAlignment.end
BCrossAxisAlignment.start
CMainAxisAlignment.start
DMainAxisAlignment.end
Explain how MainAxisAlignment and CrossAxisAlignment work differently in a Row and a Column.
Think about which axis is horizontal or vertical in each widget.
You got /5 concepts.
    Describe a real-life scenario where you would use MainAxisAlignment.spaceBetween in a Flutter layout.
    Imagine arranging objects on a shelf with equal gaps.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does MainAxisAlignment control in a Flutter Row widget?
      easy
      A. How children are aligned vertically along the row
      B. How children are aligned vertically along the column
      C. How children are aligned horizontally along the row
      D. How children are aligned horizontally along the column

      Solution

      1. Step 1: Understand the main axis in a Row

        In a Row widget, the main axis runs horizontally from left to right.
      2. Step 2: Role of MainAxisAlignment

        MainAxisAlignment controls how children are placed along this horizontal main axis.
      3. Final Answer:

        How children are aligned horizontally along the row -> Option C
      4. Quick Check:

        MainAxisAlignment = horizontal alignment in Row [OK]
      Hint: MainAxisAlignment aligns along the main direction [OK]
      Common Mistakes:
      • Confusing main axis with cross axis
      • Mixing Row and Column directions
      • Thinking MainAxisAlignment controls vertical alignment in Row
      2. Which of the following is the correct syntax to center children horizontally in a Row using MainAxisAlignment?
      easy
      A. crossAxisAlignment: CrossAxisAlignment.center,
      B. mainAxisAlignment: CrossAxisAlignment.center,
      C. crossAxisAlignment: MainAxisAlignment.center,
      D. mainAxisAlignment: MainAxisAlignment.center,

      Solution

      1. Step 1: Identify the property for main axis alignment

        The property to align children along the main axis is mainAxisAlignment.
      2. Step 2: Use the correct enum value

        To center children, use MainAxisAlignment.center.
      3. Final Answer:

        mainAxisAlignment: MainAxisAlignment.center, -> Option D
      4. Quick Check:

        Center horizontally in Row = mainAxisAlignment.center [OK]
      Hint: Use mainAxisAlignment for main axis, CrossAxisAlignment for cross axis [OK]
      Common Mistakes:
      • Using crossAxisAlignment instead of mainAxisAlignment
      • Mixing enum types for properties
      • Forgetting the comma at the end
      3. Given this Flutter code snippet, what will be the vertical alignment of the children inside the Row?
      Row(
        crossAxisAlignment: CrossAxisAlignment.end,
        children: [
          Container(height: 50, width: 50, color: Colors.red),
          Container(height: 100, width: 50, color: Colors.blue),
        ],
      )
      medium
      A. Children aligned at the bottom of the Row
      B. Children aligned at the top of the Row
      C. Children centered vertically in the Row
      D. Children stretched to fill the Row height

      Solution

      1. Step 1: Understand crossAxisAlignment in Row

        In a Row, the cross axis is vertical. CrossAxisAlignment.end aligns children at the bottom.
      2. Step 2: Apply to given containers

        The containers have different heights, so aligning at the bottom means their bottom edges line up.
      3. Final Answer:

        Children aligned at the bottom of the Row -> Option A
      4. Quick Check:

        CrossAxisAlignment.end = bottom alignment in Row [OK]
      Hint: CrossAxisAlignment.end aligns children bottom in Row [OK]
      Common Mistakes:
      • Confusing CrossAxisAlignment.end with top alignment
      • Mixing main and cross axis directions
      • Assuming children stretch by default
      4. Identify the error in this Flutter code snippet:
      Column(
        mainAxisAlignment: MainAxisAlignment.left,
        children: [
          Text('Hello'),
          Text('World'),
        ],
      )
      medium
      A. Children list is empty
      B. MainAxisAlignment.left is invalid; use start or end instead
      C. Column cannot have Text widgets as children
      D. Missing comma after children list

      Solution

      1. Step 1: Check MainAxisAlignment values

        MainAxisAlignment enum does not have a 'left' value; valid values include start, end, center, spaceBetween, etc.
      2. Step 2: Confirm correct usage

        To align children to the start horizontally in a Column, use MainAxisAlignment.start.
      3. Final Answer:

        MainAxisAlignment.left is invalid; use start or end instead -> Option B
      4. Quick Check:

        MainAxisAlignment.left is not a valid enum [OK]
      Hint: Use start/end/center, not left/right in MainAxisAlignment [OK]
      Common Mistakes:
      • Using left or right instead of start or end
      • Confusing MainAxisAlignment with CrossAxisAlignment
      • Ignoring enum value errors
      5. You want to create a Column where children are spaced evenly vertically, but each child is aligned to the start horizontally. Which combination of MainAxisAlignment and CrossAxisAlignment should you use?
      hard
      A. mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.start
      B. mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center
      C. mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.end
      D. mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.stretch

      Solution

      1. Step 1: Understand vertical spacing in Column

        MainAxisAlignment controls vertical spacing in Column. To space children evenly, use MainAxisAlignment.spaceEvenly.
      2. Step 2: Understand horizontal alignment in Column

        CrossAxisAlignment controls horizontal alignment. To align children to the start (left), use CrossAxisAlignment.start.
      3. Final Answer:

        mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.start -> Option A
      4. Quick Check:

        Vertical spacing evenly + horizontal start = mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.start [OK]
      Hint: MainAxisAlignment for vertical, CrossAxisAlignment for horizontal in Column [OK]
      Common Mistakes:
      • Mixing up main and cross axis in Column
      • Using spaceBetween instead of spaceEvenly
      • Choosing wrong crossAxisAlignment for start alignment
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard