【问题标题】:Position Text widget so that center of widget is on a specific location of parent Stack定位文本小部件,使小部件的中心位于父堆栈的特定位置
【发布时间】:2020-11-09 20:14:32
【问题描述】:

我有一个 Stack() 小部件,里面有一个子 Text() 小部件。我需要 Text 小部件的中心位于 [left: 137, top: 201]。

使用 Positioned(),我只能定位对象的边缘。如何定位文本小部件的中心?有没有办法使用子小部件的宽度/高度来偏移 Positioned(),或者其他方式?

Stack(
        children: [
          ...,
          Positioned(
              left: 137,    // I want these coordinates to be the center
              top: 201,     // but they are the top left corner now
              child: Text("20%")
          )])

用 Center() 包裹 Text() 小部件似乎没有任何作用?

我有一个 CustomPainter,它可以绘制属于同一个 Stack() 的图形,并且我可以获得任何绘制点的像素坐标。我想覆盖文本,并且希望能够将文本集中在特定点上。在这张图片中,我希望“20%”文本位于绿色/蓝色(x:137,y:201)之间的中间十字中心,但我只能使用 Positioned() 设置左上角

【问题讨论】:

  • 我不希望 Text 小部件位于 Stack 的中心,我希望 Text 小部件的中心位于某个 (x, y) 位置.我刚刚测试了用Center 包装小部件,没有用。
  • 您的问题不够清楚...您能否添加您的结果图像和您想要的图像?我认为这会让其他人很容易阅读你的问题:)。
  • 当然!添加图片和更详尽的描述

标签: flutter flutter-layout


【解决方案1】:

解决了这个问题。我可以制作一个硬编码大小的容器,该大小比文本更大。现在我可以将 Center 小部件作为容器的子级,并将 Text 小部件放在 Center 小部件中。 Presto,我可以使用 Container 的尺寸 + 坐标来精确定位我的文本。

Positioned(
    top: y-100,
    left: x-100,
    child: Container(
          width: 200,  // Now I just offset my Positioned() parameters
          height: 200, // by half the width & height as done above
          child: Center(
              child: Text(
            "Hello!"
          ))));

【讨论】:

    猜你喜欢
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多