5

在此处输入图像描述

正如你所看到的,右边的人脸图标被剪掉了,我不知道为什么。

这是我的代码:

new Container(
  padding: new EdgeInsets.fromLTRB(style.wideMargin, style.wideMargin * 2,
      style.wideMargin, style.wideMargin),
  decoration: new BoxDecoration(backgroundColor: Colors.white),
  child: new Row(
    crossAxisAlignment: CrossAxisAlignment.end,
    children: [
      new Expanded(
        child: new Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            new PrecisionTextOverflow(
                'Name of a thing',
                lineWidth: style.longLineWrappingWidth,
                mainTextStyle: style.blackParagraphText),
            // Because PrecisionTextOverflow paints itself directly, the UI
            // doesn't know its size so we use a blank Text object to make the
            // column center itself correctly.
            new Text(' '),
          ],
        ),
      ),
      new Transform(
        transform:
            new Matrix4.translationValues(0.0, -style.defaultMargin, 0.0),
        child: new IconButton(
          padding: EdgeInsets.zero,
          icon: new Icon(Icons.face,
              size: style.headingText.fontSize,
              color: style.favoriteColor[isItemFavorite]),
          onPressed: favoritePressed,
        ),
      ),
    ],
  ),
)

PrecisionTextOverflow 是一个由 StatelessWidget 组成的类,它使用 CustomPainter 在屏幕上绘制文本。我不认为它与手头的问题有关,但仅供参考。

我试过从外部容器中移除填充物,但它没有帮助。我尝试调整转换以将图标向左移动,但它只是将其转换为剪切形式。我究竟做错了什么?我该如何纠正?

编辑: 好的,我做了一个渲染树转储,看起来封闭的行将其高度设置为 24.0,它向下传递给 IconButton,其大小为 (24.0, 24.0)。有没有办法增加行的高度?还是我应该重新考虑我的整个结构?

4

2 回答 2

7

您在size图标上设置 ,而不是IconButton. 如果您将size论点移至IconButton它应该可以工作。

发生的事情IconButton是默认为 24​​.0,并且由于您将它放在无界空间中,因此通过LimitedBox. 然后它尝试Icon通过IconTheme继承的小部件将该大小传递给 ,但Icon已被告知忽略该大小并且无论如何都是大小 30.0。

我会改进文档。

于 2017-01-23T20:34:56.633 回答
1

由于不同的原因,我遇到了同样的问题

用一个固定的包裹IconButton在 a中,并可能导致它像示例中一样被剪辑。Containerheightwidth

于 2020-06-20T21:00:56.637 回答