首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么文本小部件的行高从英文变化到中文?

为什么文本小部件的行高从英文变化到中文?
EN

Stack Overflow用户
提问于 2021-09-03 00:43:15
回答 1查看 318关注 0票数 0

用这个代码

代码语言:javascript
运行
复制
Center(
        child: Text(
          'hello 你好',
          style: TextStyle(backgroundColor: Colors.red, fontSize: 24),
        ),
      )

中国人的身高似乎会比英语高吗?我能让他们有一个相同的高度吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-03 02:56:37

不同的文本高度是由不同的字体系列造成的。

您会更改支持中文和英文的字体吗?

https://fonts.google.com/?subset=chinese-simplified&preview.text=%E4%BD%A0%E5%A5%BDHello&preview.text_type=custom

或者,如果您想使文本高度相同,下面是示例。

在文本中使用“strutStyle”参数,虽然不方便,但可以修改每个文本的高度是相同的。

https://medium.com/@najeira/control-text-height-using-strutstyle-4b9b5151668b https://github.com/flutter/flutter/issues/38875

代码语言:javascript
运行
复制
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: _buildBody(),
      floatingActionButton: FloatingActionButton(
        onPressed: () {},
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }

  Widget _buildBody() {
    return Column(
      children: [
        Center(
          child: Text(
            'hello 你好',
            style: TextStyle(backgroundColor: Colors.red, fontSize: 24),
          ),
        ),
        SizedBox(height: 20),
        Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Container(
              child: Text(
                "hello",
                style: TextStyle(
                  fontSize: 24,
                ),
                strutStyle: StrutStyle(
                  height: 1.5,
                  fontSize: 24,
                ),
              ),
              color: Colors.red,
            ),
            Container(
              child: Text(
                "你好",
                style: TextStyle(
                  fontSize: 24,
                ),
                strutStyle: StrutStyle(
                  height: 1.5,
                  fontSize: 24,
                ),
              ),
              color: Colors.red,
            ),
          ],
        ),
      ],
    );
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69038351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档