根据特定子项调整行高大小

问题描述 投票:0回答:1

我想根据文本

Sign in
高度设置行高。

因此,图标和图像标志应与此高度相匹配。但事实并非如此。

enter image description here

当文字较小时,图像和图标也应该较小。

enter image description here

 Container(
              color: Colors.pink[700],
              child: IntrinsicHeight(
                child: Row(
                  // crossAxisAlignment: CrossAxisAlignment.stretch,
                  children: [
                    Text("Sign in", style: TextStyle(fontSize: 64)),
                    FittedBox(
                      child: Icon(
                        Icons.phone,
                        size: 24,
                      ),
                      fit: BoxFit.fitHeight,
                    ),
                    // Icon(Icons.phone),
                    Image(
                      image: AssetImage(
                        'assets/logos/google_light.png',
                        package: 'flutter_signin_button',
                      ),
                      fit: BoxFit.fitHeight,
                      // height: 12.0,
                    ),
                    // Column(
                    //   mainAxisSize: MainAxisSize.max,
                    //   children: [
                    //     FlutterLogo(),
                    //     // FittedBox(child: FlutterLogo(), fit: BoxFit.fitHeight,),
                    //   ],
                    // ),
                  ],
                ),
              ),
            ),

有没有一种简单的方法可以在不使用 GlobalKeys 和

findRenderObject
或外部包的情况下实现此目的?

flutter dart
1个回答
0
投票

我找到了一个临时解决方案,但欢迎更好的解决方案。这不好,因为我们必须设置一个

height:1.0
,感觉就像黑客

  Container(
              color: Colors.pink[700],
              child: IntrinsicHeight(
                child: Row(
                  crossAxisAlignment: CrossAxisAlignment.stretch,
                  // textBaseline: TextBaseline.alphabetic,/
                  children: [
                    Container(
                      color: Colors.green[700],
                        child: Text("Sign ", style: TextStyle(fontSize: 8))),
                    FittedBox(
                      child: Icon(
                        Icons.phone,
                        size: 1,
                      ),
                      fit: BoxFit.fitHeight,
                    ),
                    // Icon(Icons.phone),
                    Image(
                      image: AssetImage(
                        'assets/logos/google_light.png',
                        package: 'flutter_signin_button',
                      ),
                      fit: BoxFit.fitHeight,
                      height: 1.0,
                    ),
                    // Column(
                    //   mainAxisSize: MainAxisSize.max,
                    //   children: [
                    //     FlutterLogo(),
                    //     // FittedBox(child: FlutterLogo(), fit: BoxFit.fitHeight,),
                    //   ],
                    // ),
                  ],
                ),
              ),
            ),

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.