【问题标题】:How to underline a Container Widget in Flutter如何在 Flutter 中为 Container Widget 下划线
【发布时间】:2018-12-10 02:11:35
【问题描述】:

我试图在我的 Flutter 应用程序中为 Container 加下划线。到目前为止,当我使用以下代码时,我实现了某种下属:

    Container(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Expanded(
              child: Padding(
                padding: EdgeInsets.all(8.0),
                child: Text(
                  'Underline my parent!',
                  maxLines: 2,
                  textAlign: TextAlign.center,
                ),
              ),
            )
          ],
        ),
        decoration: Border(bottom: BorderSide(color: Colors.grey)),
      ),

但现在我希望下划线不是从头到尾,我想在开头和结尾留出空间。如果有一些更聪明的方式来给小部件下划线,我也会很高兴看到它。

【问题讨论】:

    标签: widget flutter underline


    【解决方案1】:

    在您的容器中添加底部BorderSide

         Container(
            decoration: BoxDecoration(
               border: Border(
                  bottom: BorderSide(width: 1.0, color: Colors.black),
               ),
           ),
        ),
    

    【讨论】:

      【解决方案2】:

      您可以使用一个简单的 Divider 小部件,包括一个填充:

      new Padding(
          padding: EdgeInsets.all(8.0), 
          child: new Divider()
      ),
      

      然后您可以用列包装现有的小部件:

      new Column(
          children: <Widget> [
              yourContainerWidget,
              new Padding(
                  padding: EdgeInsets.all(8.0), 
                  child: new Divider()
              ),     
          ]
      )
      

      【讨论】:

      • 好的,但是这个 Divider 应该放在哪里?容器之后?
      • 这是一个相当不错的方法,但我现在无法设置分隔线宽度。
      • 然后尝试移除它周围的填充。
      • 我的意思是下划线的宽度,现在它是固定像素,我看不出有任何可能使它的宽度例如 5 像素
      • 嗯,你可以把它放在一个容器里,用width属性设置宽度。
      【解决方案3】:

      您可以使用 Border 在 Container 小部件中简单地创建下划线

      这里是代码:

      Container(
        padding: EdgeInsets.all(8.0),
        decoration: BoxDecoration(
          border: Border(
            bottom: BorderSide(
              width: 1.0
            ),
          ),
        ),
        child: Text(
          'Underline my parent!',
          maxLines: 2,
          textAlign: TextAlign.center,
        ),
      ), 
      

      【讨论】:

        【解决方案4】:

        一个简单的解决方案是使用Container 小部件创建一条线。并使用 Column 小部件包装 Row 小部件并将该行添加为第二个孩子,如下所示:

        var aLine = Container(color: Colors.grey, width: 50.0, height: 2.0,); 
        
        Column(
          children: <Widget>[
            Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Expanded(
                    child: Padding(
                      padding: EdgeInsets.all(8.0),
                      child: Text(
                        'Underline my parent!',
                        maxLines: 2,
                        textAlign: TextAlign.center,
                      ),
                    ),
                  ),
                ],
              ),
              aLine
          ],
        ),
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-15
          • 2020-10-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-15
          • 2018-07-20
          • 2019-10-02
          相关资源
          最近更新 更多