'Is it possible to add another row underneath a row with 3 column children

I'm making a UI for an app and it requires having 4 icons on the left and right side of the screen going down and 1 image in the middle the height of all icons. Using row a row widget and 3 columns its been set up but the issue I'm having is adding one more image below the 3 columns that will stretch across the screen.

Is there a way to add another row underneath the 3 columns to display the last image?

Code looks like this currently

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: Colors.orange,
      appBar: AppBar((...),
      ),
      body:
        Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            //Left Column
            Column(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: <Widget>[
                IconButton(...),
                IconButton(...),
                IconButton(...),
                IconButton(...),
              ],
            ),
            //Centre Column
            Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Expanded(
                    child: SizedBox(
                      child: Image(...),
                ),
                    )
                )
              ],
            ),
            //Right Column
            Column(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: <Widget>[
                IconButton(...),
                IconButton(...),
                IconButton(...),
                IconButton(...),
              ],
            ),
          ],
        )
    );
  }
}


  [1]: https://i.stack.imgur.com/w9NlN.png


Solution 1:[1]

Row being the body of Scaffold has parent height equal to whole screen. So the Image widget also tries to get maximum possible height from parent. To remove this take the reference from bellow code:: add Column as the parent of the top level Row

  final url = "https://images.ctfassets.net/23aumh6u8s0i/4TsG2mTRrLFhlQ9G1m19sC/4c9f98d56165a0bdd71cbe7b9c2e2484/flutter";
  @override
Widget build(BuildContext context) {
return MaterialApp(
  theme: ThemeData.dark().copyWith(
    scaffoldBackgroundColor: darkBlue,
  ),
  debugShowCheckedModeBanner: false,
  home: Scaffold(
    body:
    Column(
      children: [
        SizedBox(
          height: 350,
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: [
              //Left Column
              Column(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: <Widget>[
                  IconButton(onPressed:(){},icon: Icon(Icons.message_outlined)),
                  IconButton(onPressed:(){},icon: Icon(Icons.message_outlined)),
                  IconButton(onPressed:(){},icon: Icon(Icons.message_outlined)),
                  IconButton(onPressed:(){},icon: Icon(Icons.message_outlined)),
                ],
              ),
              //Centre Column
              Image.network(url),
              //Right Column
              Column(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: <Widget>[
                  IconButton(onPressed:(){},icon: Icon(Icons.message_outlined)),
                  IconButton(onPressed:(){},icon: Icon(Icons.message_outlined)),
                  IconButton(onPressed:(){},icon: Icon(Icons.message_outlined)),
                  IconButton(onPressed:(){},icon: Icon(Icons.message_outlined)),
                ],
              ),
            ],
          ),
        ),
      ],
    ),
  ),
);
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 RUSHIKESH NARWADE