颤振 - 垂直分频器

Pra*_*mar 17 flutter

在颤动中,是否可以选择在组件之间绘制垂直线,如图中所示.

在此输入图像描述

Cop*_*oad 29

他们都有两种简单的方法


垂直分隔线:

  1. VerticalDivider()
    
    Run Code Online (Sandbox Code Playgroud)
  2. Container(
      width: 1,
      height: double.maxFinite,
      color: Colors.grey,
    )
    
    Run Code Online (Sandbox Code Playgroud)

水平分隔线:

  1. Divider()
    
    Run Code Online (Sandbox Code Playgroud)
  2. Container(
      height: 1,
      width: double.maxFinite,
      color: Colors.grey,
    )
    
    Run Code Online (Sandbox Code Playgroud)

  • **重要提示:**请记住将 **Column/Row** 小部件包裹在 **IntrinsicWidth/IntrinsicHeight** 小部件内,以显示您想要的 **Divider**。 (6认同)
  • 同样重要的是:这个课程相对昂贵。尽可能避免使用它。(如文档中所述) (2认同)

rmt*_*zie 20

据我所知。但是,创建一个很简单-如果查看Flutter的Divider的来源,您会发现它只是一个SizedBox带有单个(底部)边框的。您可以执行相同的操作,但尺寸要切换。


更新(2018年10月4日):Flutter团队VerticalDivider合并一个实现。查看文档,但使用起来非常简单-只需将其连续放在其他两个项目之间即可。

  • 我尝试使用 VerticalDivider 作为行小部件的分隔符,但是...我没有看到它!:( (28认同)
  • 文档说“垂直分隔线可用于水平滚动列表,例如 ListView”。我尝试连续使用它,但它没有显示。无用的小部件:/ (9认同)
  • “Divider”和“VerticalDivider”是非常令人失望的小部件...为什么不为这两个小部件提供一个小部件,而只是切换方向呢?它甚至可以包含对角线或任意方向的分隔线...... (3认同)

jgi*_*ich 18

截至10天前,flutter 合并了一个VerticalDivider实现.它很快就会在默认频道中出现,但是现在你必须切换到开发频道才能使用它:flutter channel dev.

以下是如何使用它的示例:

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


kap*_*sid 16

尝试将其包裹在Container具有一定高度的内部

Container(height: 80, child: VerticalDivider(color: Colors.red)),
Run Code Online (Sandbox Code Playgroud)


Vic*_*ong 12

import 'package:flutter/material.dart';
class VerticalDivider extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Container(
      height: 30.0,
      width: 1.0,
      color: Colors.white30,
      margin: const EdgeInsets.only(left: 10.0, right: 10.0),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)


ali*_*son 9

只需将您的 Row 包装在 IntrinsicHeight 小部件中,您就应该得到所需的结果:

IntrinsicHeight(
    child: Row(
  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  children: <Widget>[
    Text('Name'),
    VerticalDivider(),
    Text('Contact'),
  ],
))
Run Code Online (Sandbox Code Playgroud)


yub*_*del 8

尝试过VerticalDivider()但无法获得任何分隔符。我解决了

 Container(color: Colors.black45, height: 50, width: 2,),

Run Code Online (Sandbox Code Playgroud)

  • 一样的东西。我添加了 VerticalDivider 作为 Row 小部件的子项,但我没有看到它。 (6认同)

Din*_*ath 8

您可以使用厚度为 1 的垂直分隔线。

          VerticalDivider(
            thickness: 1,
            color: Color(0xFFF6F4F4),
          ),
Run Code Online (Sandbox Code Playgroud)

如果您看不到垂直分隔线,请使用IntrinsicHeight小部件包裹该行。