簡體   English   中英

在顫振的基線上將圖像與顫振中的文本旁邊對齊

[英]Align image next to text in flutter on base line in Flutter

我在某些文本旁邊放置徽標並正確垂直對齊時遇到問題。 logo png 的 PNG 尺寸約為 750x256。 我希望它與旁邊文本中的大寫字母大小相同。 因此,我將字體大小設置為 28,將圖像高度設置為 20。我假設通過將其放入具有交叉軸對齊基線的行中,圖像應放置在基線處,但將其放置在頂部。

這是我的代碼:

static Widget _buildLogo() {
  return Row(
    mainAxisAlignment: MainAxisAlignment.center,
    crossAxisAlignment: CrossAxisAlignment.baseline,
    textBaseline: TextBaseline.alphabetic,
    children: [
      SizedBox(width: 15.0),
      Image.asset("assets/images/header-logo-red_256_solid.png", height: 20),
      SizedBox(width: 10.0),
      Text('Text',
        style: TextStyle(
          fontSize: 28.0,
          backgroundColor: Colors.green
        )
      ),
    ]
  );
}

這是它的外觀:

在此處輸入圖片說明

我希望它是這樣的(我添加了一行來表示字母基線):

在此處輸入圖片說明

編輯:快速解釋:我想要實現的是您將在以下代碼片段中獲得的默認 HTML 行為?

<html>
<body>
<img src="logo.png" /><font size=200>laBlaBla</font>
</body>
</html>

HTML-基線對齊

我終於找到了解決方案。

使用 Row 不改變 RenderingBox 是不可能的,但使用 RichText 是可能的。 秘訣是使用正確的基線/對齊方式。

富文本基線

    RichText(
      text: TextSpan(
        children: [
          WidgetSpan(child: Image.asset("assets/images/logo.png"), baseline: TextBaseline.alphabetic, alignment: PlaceholderAlignment.baseline),
          TextSpan(text: "laBlaBla", style: TextStyle(fontSize: 48),)
        ]
      )
    ),

編輯:雖然有點謹慎,但這個解決方案也並不總是按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM