How to draw a horizontal line in flutter row widgets?

FlutterDart

Flutter Problem Overview


In my flutter project, I have initialized a Row. Inside that, I created some Texts in a column and after that, I want to add a line but it is not showing anything. I have used Expanded for that reason and followed the given solutions-

https://stackoverflow.com/questions/54058228/horizontal-divider-with-text-in-the-middle-in-flutter

But none of them worked either.

Here's the image of my code output-

enter image description here

Here's my code-

Container(
      color:Colors.white,
      child: (
        Row(
          children: <Widget>[
            Padding(
              padding: const EdgeInsets.all(8.0),
              child: Image(
                  height: 100,
                  width: 100,
                  image: NetworkImage("https://www.gstatic.com/webp/gallery/1.jpg"),
                ),
            ),
            Column(
              children: <Widget>[
                Text("Book Name"),
                Text("Author name"),

                Divider(
                  color: Colors.black,
                )
              ],
            )
          ],
        )
      ),
    ),

So, I need a line below the two texts and show it like the below picture-

enter image description here

Flutter Solutions


Solution 1 - Flutter

Try wrapping you Column in an Expanded so the Divider knows how much space to occupy.

Container(
  color: Colors.white,
  child: (Row(
    children: <Widget>[
      // ...
      Expanded(
        child: Column(
          children: <Widget>[
            Text("Book Name"),
            Text("Author name"),
            Divider(
              color: Colors.black
            )
          ],
        ),
      )
    ],
  )),
);

Solution 2 - Flutter

The idea is that you placed your divider inside a column whereas the divider by default is horizontal so it doesn't have enough space to occupy. If you change your height property for the divider you can see it clearly.

If you want you can wrap your divider in a row or perhaps make the divider part of the outer row though you might have to fix its alignment and wrap it in an expanded. You can also wrap the column in an expanded so it occupies all enough space for the divider to appear.

I'd do the code for you but I only have part of the code of what's displayed + it shouldn't be too difficult. If you needed more help let me know!

Solution 3 - Flutter

Easy Pezy Lemon Squeezy

Its simple, see take a container, do not mention its width, because it will take the space dynamically and then only give the color to the lower border of the radius.

Container(
                              child: Text(
                                'Your Text Here',
                              ),
                              decoration: BoxDecoration(
                                border: Border(
                                  bottom: BorderSide(color: Colors.black),
                                ),
                              ),
                            ),

Solution 4 - Flutter

If you know exactly how long you want the line to be. You can wrap the Divider with a SizedBox specifying the width of the line with the SizedBox properties.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionS. M. AsifView Question on Stackoverflow
Solution 1 - FlutterSvenView Answer on Stackoverflow
Solution 2 - FlutterAbbas.MView Answer on Stackoverflow
Solution 3 - FlutterShehzad AhmadView Answer on Stackoverflow
Solution 4 - FlutterKenartView Answer on Stackoverflow