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

如何在flatter中向小部件添加边框?

国俊艾
2023-03-14

我使用的是flatter,我想给一个小部件添加一个边框(在本例中是Textwidget)。

我尝试了TextStyleText,但没有看到如何添加边框。

共有3个答案

濮俭
2023-03-14

最好的方法是使用BoxDecoration()

有利条件

  • 您可以设置小部件的边框
  • 您可以设置边框颜色或宽度
  • 您可以设置边框的圆角
  • 您可以添加小部件的阴影

缺点

  • 框装饰只与容器小部件一起使用,所以您想将您的小部件包装在容器()

实例

    Container(
      margin: EdgeInsets.all(10),
      padding: EdgeInsets.all(10),
      alignment: Alignment.center,
      decoration: BoxDecoration(
        color: Colors.orange,
        border: Border.all(
            color: Colors.pink[800], // Set border color
            width: 3.0),   // Set border width
        borderRadius: BorderRadius.all(
            Radius.circular(10.0)), // Set rounded corner radius
        boxShadow: [BoxShadow(blurRadius: 10,color: Colors.black,offset: Offset(1,3))] // Make rounded corner of border
      ),
      child: Text("My demo styling"),
    )
唐骏祥
2023-03-14

下面是一个扩展的答案。DecoratedBox是您需要添加边框的地方,但是我使用了容器来方便添加边距和填充。

这里是一般的设置。

Widget myWidget() {
  return Container(
    margin: const EdgeInsets.all(30.0),
    padding: const EdgeInsets.all(10.0),
    decoration: myBoxDecoration(), //             <--- BoxDecoration here
    child: Text(
      "text",
      style: TextStyle(fontSize: 30.0),
    ),
  );
}

其中框装饰

BoxDecoration myBoxDecoration() {
  return BoxDecoration(
    border: Border.all(),
  );
}

它们的边框宽度分别为1310

BoxDecoration myBoxDecoration() {
  return BoxDecoration(
    border: Border.all(
      width: 1, //                   <--- border width here
    ),
  );
}

它们的边框颜色是

  • Colors.red
  • Colors.blue
  • Colors.green

代码

BoxDecoration myBoxDecoration() {
  return BoxDecoration(
    border: Border.all(
      color: Colors.red, //                   <--- border color
      width: 5.0,
    ),
  );
}

这些有边界的一面

  • 左侧(3.0),顶部(3.0)
  • 底部(13.0)
  • 左侧(蓝色[100],15.0),顶部(蓝色[300],10.0),右侧(蓝色[500],5.0),底部(蓝色[800],3.0)

代码

BoxDecoration myBoxDecoration() {
  return BoxDecoration(
    border: Border(
      left: BorderSide( //                   <--- left side
        color: Colors.black,
        width: 3.0,
      ),
      top: BorderSide( //                    <--- top side
        color: Colors.black,
        width: 3.0,
      ),
    ),
  );
}

它们的边界半径分别为51030

BoxDecoration myBoxDecoration() {
  return BoxDecoration(
    border: Border.all(
      width: 3.0
    ),
    borderRadius: BorderRadius.all(
        Radius.circular(5.0) //                 <--- border radius here
    ),
  );
}

DecoratedBox/BoxDecoration非常灵活。阅读颤振 — BoxEdition备忘单提供更多想法。

杭胜
2023-03-14

您可以将文本作为子项添加到具有框饰边框属性的容器

Container(
  margin: const EdgeInsets.all(15.0),
  padding: const EdgeInsets.all(3.0),
  decoration: BoxDecoration(
    border: Border.all(color: Colors.blueAccent)
  ),
  child: Text('My Awesome Border'),
)
 类似资料:
  • 我做了一个简单的加速度计应用程序,我想做一个配套的小部件。但是每次向widgetprovider添加传感器时,都会出现以下错误: 07-25 10:31:01.337:E/AndroidRuntime(8908):致命异常:main 07-25 10:31:01.337:E/AndroidRuntime(8908):java.lang.RuntimeException:无法启动接收器com.exa

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

  • 我想将颤振小部件与其父部件对齐。我知道我可以通过将小部件包装在中心小部件中来将其居中。 但我如何将其与右侧、底部、顶部中间等对齐? 笔记: 我说的是一个孩子,而不是一行或一列中的多个孩子。见以下问题: 对齐行小部件中的文本小部件 颤振|右对齐不工作 这一条是正确的,但我试图提出一个更尖锐的问题: 如何在Flatter中左对齐OutlineButton图标

  • 我正在创建一个测验应用程序,需要根据特定问题的选项数量动态显示mcq选项。 例如: 现在按钮的代码如下: 如你所见,我能做的就是“修复”2个按钮。有没有一种方法可以根据特定问题的选项数量动态添加按钮? 我有一个名为

  • 我试图在屏幕中间构造一个窗口小部件。我没有使用pos_hint或size_hint,因为我将在以后更改小部件的位置,但是当我构建小部件时,它的大小和位置不正确。这是我的密码: 为什么小部件的大小不等于窗口大小的十分之一,为什么它的中心在窗口的右上角?

  • 我想在布局底部添加边框。我知道我可以使用可组合,但我只想学习如何绘制边框。 目前,我可以为所有侧面添加边框,这不是我想要的