【问题标题】:Flutter align widget horizontaly and verticalyFlutter 水平和垂直对齐小部件
【发布时间】:2020-10-13 13:51:04
【问题描述】:

我正在做一个 Flutter 项目。我正在尝试创建一个如下图所示的小部件,但我无法做到。

所以我要做的是在左上角创建一个带有Text 的小部件(这个小部件的大小不是恒定的,取决于其中的文本)。 我正在尝试将 2 个其他小部件与 Text 对齐:

  • Widget 1 水平对齐并与 Text 小部件居中,在其右侧,中间没有空格
  • Widget 2 的右边缘与Text 小部件的右边缘垂直对齐,并位于其下方(两个小部件之间没有空间)。

我尝试使用 ColumnRow 小部件或 GridView 来实现此功能,但我无法做到。

此自定义小部件的整体尺寸也必须缩小。

有人知道怎么做这样的事情吗?

谢谢。

【问题讨论】:

  • 我建议你使用 staggeredGridView.. 只需在 dart 包中寻找它

标签: flutter dart view position alignment


【解决方案1】:

这行得通

Container(
      width: double.infinity,
      height: 300,
      color: Colors.grey[200],
      child: Column(
        children: <Widget>[
          Row(
            children: [
              Flexible(
                flex: 2,
                child: Container(
                  height: 200,
                  color: Colors.blue,
                ),
              ),
              Flexible(
                flex: 1,
                child: Container(
                  height: 100,
                  color: Colors.green,
                ),
              ),
            ],
          ),
          Row(
            children: <Widget>[
              Flexible(
                flex: 2,
                child: Align(
                  alignment: Alignment.centerRight,
                  child: Container(
                    width: 150,
                    height: 100,
                    color: Colors.orange,
                  ),
                ),
              ),
              Flexible(
                flex: 1,
                child: Container(),
              ),
            ],
          ),
        ],
      ),
    ),

【讨论】:

  • 您好,谢谢,但文本的大小不固定,因此比例并不总是 2:1 或任何常数:/
  • 您可以使用媒体查询或小数大小的框小部件或向文本小部件添加填充/边距,而不是硬编码宽度和高度。参考其他 Flutter 响应式 ui flutter.dev/docs/development/ui/layout/responsive
猜你喜欢
  • 2012-10-10
  • 2013-11-25
  • 2014-12-05
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多