如何在Flutter中的列上的小部件之间添加垂直分隔线?

时间:2019-04-08 07:02:55

标签: android flutter separator divider

美好的一天。

我已经在该网站上浏览了有关如何在Flutter中的列上的小部件之间添加垂直分隔线的信息?但我什么也没得到。

这是我想要的 enter image description here

我已经制作了水平分隔线。但是当我尝试制作一个垂直分隔线以分隔两个对象(文本|图像)时,我什么也没得到。

代码如下:

Row(children: <Widget>[
                Expanded(
                  child: new Container(
                      margin: const EdgeInsets.only(left: 10.0, right: 20.0),
                      child: Divider(
                        color: Colors.black,
                        height: 36,
                      )),
                ),
                Text("OR"),
                Expanded(
                  child: new Container(
                      margin: const EdgeInsets.only(left: 20.0, right: 10.0),
                      child: Divider(
                        color: Colors.black,
                        height: 36,
                      )),
                ),
              ]),
上面的

代码是水平的

Row(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: <Widget>[
            Row(
              children: <Widget>[
                Image.asset('images/makanan.png', width: 30,),
                Text('Diskon 20%', style: TextStyle(fontSize: 5, color: Colors.green),)
              ],
            ),
            VerticalDivider(
              color: Colors.red,
              width: 20,
            ),
            Row(
              children: <Widget>[
                Image.asset('images/makanan.png', width: 30,),
                Text('Diskon 20%', style: TextStyle(fontSize: 5, color: Colors.green),)
              ],
            ),
          ],
        ),
上面的

我为Vertical Divider做的代码。但失败了。

需要您的帮助。 谢谢

5 个答案:

答案 0 :(得分:5)

尝试更换

VerticalDivider(color: Colors.red, width: 20)

使用

Container(height: 80, child: VerticalDivider(color: Colors.red))

答案 1 :(得分:2)

尝试一下:

IntrinsicHeight(
    child: new Row(
  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  children: <Widget>[
    Text('Foo'),
    VerticalDivider(),
    Text('Bar'),
    VerticalDivider(),
    Text('Baz'),
  ],
))

答案 2 :(得分:1)

你可以使用

VerticalDivider(
thickness: 1,
color:Colors.black
            
),

Container(
height: 30,
width: 1,
color: Colors.black

)

答案 3 :(得分:0)

在这里找到答案。

对我有用。 谢谢@Android Team先生和@sunxs先生的帮助:)

Row(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: <Widget>[
            Row(
              children: <Widget>[
                Image.asset('images/makanan.png', width: 30,),
                Text('Diskon 20%', style: TextStyle(fontSize: 5, color: Colors.green),)
              ],
            ),
            Container(height: 80, child: VerticalDivider(color: Colors.red)),
            Row(
              children: <Widget>[
                Image.asset('images/makanan.png', width: 30,),
                Text('Diskon 20%', style: TextStyle(fontSize: 5, color: Colors.green),)
              ],
            ),
            Container(height: 80, child: VerticalDivider(color: Colors.red)),
            Row(
              children: <Widget>[
                Image.asset('images/makanan.png', width: 30,),
                Text('Diskon 20%', style: TextStyle(fontSize: 5, color: Colors.green),)
              ],
            ),
          ],
        ),

答案 4 :(得分:0)

你可以试试:

Container(
  color: Colors.grey,
  height: 30,
  width: 1,
),

它对我有用! :))