当前位置: 首页 > 知识库问答 >
问题:

如何在flatter中为文本加下划线

苏宾鸿
2023-03-14

如何在flatter-insidetextwidget中为文本加下划线?

TextStyle

共有3个答案

颛孙品
2023-03-14

令人兴奋的解决方案
如果您想控制文本和下划线之间的距离,可以使用此技巧。简而言之,可以使用颜色隐藏实际文本。透明,然后显示悬停在文本下划线上方的偏移阴影。

        Text(
            "Forgot Password?",
            style: TextStyle(
              shadows: [
                Shadow(
                    color: Colors.black,
                    offset: Offset(0, -5))
              ],
              color: Colors.transparent,
              decoration:
              TextDecoration.underline,
              decorationColor: Colors.blue,
              decorationThickness: 4,
              decorationStyle:
              TextDecorationStyle.dashed,
            ),
          )

正如您将在下面看到的,如果您使用开箱即用的文本下划线,它会粘在文本的底部,看起来有点丑,

无聊的解决方案

仅使用文本小部件,您可以添加具有自定义样式和颜色的下划线:

Text(
  "Forgot Password?",
  style: TextStyle(
    decoration: TextDecoration.underline,
    decorationColor: Colors.blue,
    decorationThickness: 4,
    decorationStyle: TextDecorationStyle.dashed,
   ),
)

我对这种方法的唯一问题是,您无法控制下划线与文本底部的距离。

如果要增加行间距,必须使用使用Container及其填充属性的非常规方法。

Container(
     padding: EdgeInsets.only(
       bottom: 5, // Space between underline and text
     ),
     decoration: BoxDecoration(
         border: Border(bottom: BorderSide(
         color: Colors.amber, 
         width: 1.0, // Underline thickness
        ))
      ),
     child: Text(
        "Forgot Password?",
        style: TextStyle(
        color: Colors.black,
        ),
       ),
      )

关注这个GitHub问题,寻找更简单的解决方案。

郎鸿雪
2023-03-14

您可以通过应用装饰:text装饰来实现。在文本文本样式下划线。

以主题为例:

          Text(
            "text",
            style: Theme
                .of(context)
                .accentTextTheme
                .subhead
                .copyWith(decoration: TextDecoration.underline),
          )

基本示例:

          Text(
            "text",
            style: TextStyle(decoration: TextDecoration.underline),
          )

云浩然
2023-03-14

在为所有内容添加下划线时,可以在文本小部件上设置文本样式。

Text(
  'Hello world',
  style: TextStyle(
    decoration: TextDecoration.underline,
  ),
)

如果您只想在文本的一部分下划线,那么您需要使用Text.rich()(或RichText小部件),并将字符串分解为您可以添加样式的TextSpans。

Text.rich(
  TextSpan(
    text: 'Hello ',
    style: TextStyle(fontSize: 50),
    children: <TextSpan>[
      TextSpan(
          text: 'world',
          style: TextStyle(
            decoration: TextDecoration.underline,
          )),
      // can add more TextSpans here...
    ],
  ),
)

TextSpan有点奇怪。文本参数是默认样式,但子项列表包含其后的已设置样式(可能未设置样式)的文本。如果要以样式化文本开头,可以为文本使用空字符串。

您还可以添加TextDecorationStyle来更改装饰的外观。以下是虚线:

Text(
  'Hello world',
  style: TextStyle(
    decoration: TextDecoration.underline,
    decorationStyle: TextDecorationStyle.dashed,
  ),
)

文本装饰风格。虚线

文本装饰风格。双精度

文本装饰风格。波浪形

 类似资料:
  • 如何从文件中读取文本并将文本写入文件? 我一直在学习如何在文件中读写文本。我发现了另一个关于从资产中读取的问题,但这是不同的。我将根据从文档中学到的知识,在下面添加我的答案。

  • 问题内容: 使用CSS后,如果应用了文本,是否可以增加文本和下划线之间的距离? 问题答案: 不可以,但是您可以使用和。 如果要使用与“下划线”相同的颜色(在我的示例中为边框),则只需省略颜色声明,即和。 对于多行,可以将多行文本包装在元素内的跨度中。例如,然后添加并在-

  • 我是第一次开发颤振应用程序。。我在添加图像时遇到问题。我有以下问题: 在哪里创建图像文件夹? 在哪里添加资产标签pubspec.ymal? 这需要任何资产文件夹吗? 我所尝试的: 在pubspec内部。ymal: 完整文件: 错误日志: 我的主菜。dart代码: 我指的是这个教程https://flutter.io/tutorials/layout/ 此外,我想问,有没有在颤振清洁重建的工具,因为

  • 工作在我的第一个flutter应用程序。主应用程序屏幕没有这个问题,所有的文本都应该显示出来。 然而,在我正在开发的这个新屏幕中,所有的文本小部件下面都有一些奇怪的黄线/双线。 你知道为什么会这样吗?

  • 只是尝试在JTextPane中为文本着色--但问题是文本和下划线不能有不同的颜色。我该怎么做,或者这可能吗?下面的示例打印所有文本并用红色下划线。