Flutter Text控件在不同手机上不居中的问题

2023-10-27

在最近flutter页面改造过程中,发现通过Contail包裹Text控件设置上下padding时,在华为魅族和vivo等手机上并没有居中展示,所以通过查看控件属性,得以解决此类问题

在这里插入图片描述
可以看到上面的在华为手机上明显偏下了

使用:

                Container(
                  padding: EdgeInsets.only(left: 4,top: 2,bottom: 2,right: 4),
                  color: Colors.blue,
                  child: Text('测试标题111'),
                ),
                Container(
                  color: Colors.blueAccent,
                  padding: EdgeInsets.only(left: 4,top: 2,bottom: 2,right: 4),
                  margin: EdgeInsets.only(top: 4),
                  child: ExText(
                    '测试标题111',
                    TextStyle(fontSize: 14, color: Colors.redAccent),
                    maxLines: 2,
                    textAlign: TextAlign.left,
                  ),
                ),

控件:

/// 修正不同手机上leading和不居中的问题
class ExText extends StatelessWidget {
  final String data; // 展示文案
  final TextStyle textStyle; // 文字样式 由于字体大小和颜色是必须的 所以此处为必穿参数
  final int maxLines; //最大行数
  final double height; // 文本高度 默认1.1更居中 但随着字体变大 这个值应该趋于1.0 允许手动调节
  final TextOverflow overflow; //裁剪模式
  final double textMaxWidth; // 文字能显示的最大宽度 如果 为autoFixSize则需要指定该值
  final TextAlign textAlign; // 对齐方式

  ExText(
    this.data,
    this.textStyle, {
    this.maxLines = 1,
    this.height = 1.1,
    this.overflow = TextOverflow.ellipsis,
    this.textMaxWidth = double.infinity,
    this.textAlign = TextAlign.center
  });

  @override
  Widget build(BuildContext context) {
    // 如果需要修正大小
    return Text(
      data,
      maxLines: maxLines,
      textAlign: textAlign,
      style: textStyle,
      strutStyle: StrutStyle(
        fontSize: textStyle.fontSize,
        fontWeight: textStyle.fontWeight,
        leading: 0,
        height: height,
        // 1.1更居中
        forceStrutHeight: true, // 关键属性 强制改为文字高度
      ),
      textHeightBehavior: TextHeightBehavior(
          // 基线 发现不设置也能行
          applyHeightToFirstAscent: false,
          applyHeightToLastDescent: false),
    );
  }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter Text控件在不同手机上不居中的问题 的相关文章

  • 如何显示数字键盘

    我阅读了其他几篇文章并使用 input setInputType TYPE NUMBER FLAG DECIMAL 确实打开了键盘 但不是数字键盘 这有什么技巧吗 give android inputType number 在你的 xml
  • 更改 Flutter Web 应用程序中的屏幕尺寸

    我正在使用 Flutter 构建一个 Web 应用程序 但我想模仿 iPhone 屏幕视图 我知道调整窗口大小可以达到这种效果 但是有没有办法将所有内容包装在手机屏幕图形的框架中 或者更改 MaterialApp 的尺寸 使其包含在手机屏幕
  • UIButton 中的文本下划线

    谁能建议如何在 UIButton 的标题下划线 我有一个自定义类型的 UIButton 我希望标题带有下划线 但 Interface Builder 没有提供任何选项来执行此操作 在 Interface Builder 中 当您为按钮选择字
  • flutter run 无法在 iOS 模拟器上运行,但 Xcode 可以构建

    在我的 Flutter 项目中 flutter run命令无法将项目构建到 iOS 模拟器 但在 Xcode 中 当我单击构建按钮时 Xcode 可以毫无问题地构建它 我正在使用 AgoraRTC 库 添加 Flutter Quill 后就
  • JTextPane 的样式是否具有类似控制台的格式?

    有没有办法使 JTextPane 中的文本看起来与控制台输出的文本相似 我的意思是 基本上 每个字符如何具有相同的宽度 以便 ASCII 艺术或间距缩进之类的东西可以正常工作 例如 目前 如果我输入 First 然后输入 5 个空格 然后在
  • 将2个暗淡数组“列表列表”输出到python中的文本文件

    简单的问题 我正在创建一个两个暗淡的数组 ddist 0 d for in 0 d 在下面的代码中使用列表 它使用 gis 数据输出距离 我只是想要一种简单的方法来获取数组 列表的结果并将其输出到保持相同的 N N 结构的文本文件 我过去曾
  • 当用户尝试使用 flutter_inappwebview 在移动应用程序中上传文件时,如何请求用户权限?

    我正在尝试使用 flutter inappwebviewplugin 创建一个 flutter web 应用程序 在应用程序中 我添加了一个用于文件上传的 dropzone 插件 此功能在浏览器和 Android 应用程序上都运行良好 但在
  • 在 flutter firebase 中登录时出现错误

    在使用错误的电子邮件或密码登录时 我希望获得我输入的小吃栏 但我的控制台中出现错误 error 初始任务操作失败 RecaptchaAction action signInWithPassword 有例外 内部 发生错误 无效的登录凭证 验
  • Dart 是单线程的,但为什么它使用 Future 对象并执行异步操作

    在文档中 Dart 是单线程的 但为了一次执行两个操作 我们使用与线程相同工作的 future 对象 使用Future对象 futures 来执行异步操作 如果 Dart 是单线程的 那么为什么它允许执行异步操作 Note 异步操作是并行操
  • flutter 中 Future.delayed 与 Timer 有什么区别

    我想知道延迟代码执行的 Future delayed 和 Timer 方法之间的区别 两者似乎都做同样的事情 未来 延迟 Future delayed const Duration milliseconds 500 code VS Time
  • 遵循最佳实践在 flutter 中存储 API 密钥的正确方法

    这是在 flutter 中添加秘密 API 密钥的正确方法 最佳实践 以防我想将代码推送到 github 上 我制作了一个使用 API 的简单应用程序 但我以粗略的方式使用密钥只是为了测试该应用程序是否正常工作 通常根据我在后端开发应用程序
  • 是否可以在flutter中开发移动键盘应用程序

    我们想要开发具有一些独特功能 例如在键盘上翻译 的移动键盘应用程序 第三方键盘 我们想知道是否有一种方法可以同时为 IOS 和 Android 开发一次 使用 Flutter 或者其他解决方案 对此有一个长的和一个短的答案 简短的回答基本上
  • 如何在列表视图中滚动添加更多项目?

    这里的代码当前加载了存储在 Firestore 集合中的所有啤酒 我如何最初只加载 10 个啤酒 然后当用户向下滚动并到达 10 个啤酒列表的末尾时 它应该加载最后一次酿造后还有 10 杯 并且酿造应根据时间戳进行排序 class Brew
  • 如何根据有效(@mentions)和所有主题标签更改文本颜色?

    我想在文本中用不同颜色显示主题标签和有效提及 我得到了这段代码的帮助 该代码仅适用于主题标签 RichText convertHashtag String text List
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • .NET“默认行终止符”?

    有什么方法可以弄清楚 NET 使用什么作为其 默认行终止符 例如 StringBuilder AppendLine String 的文档表示 附加指定字符串的副本 后跟默认行终止符 NET 中的几个与文本相关的类引用相同的概念 有什么方法可
  • Android Studio Flutter 项目错误:内存不足

    我在 Android Studio 上运行任何 flutter 项目 都会抛出内存不足错误 控制台中显示的消息如下所示 e b build slave windows engine build src third party dart ru
  • Flutter - 名称为 [DEFAULT] 的 FirebaseApp 不存在

    我正在使用 firebase 身份验证系统和 Firestore 开发一个 flutter 应用程序 我工作了3个月 之前没有遇到过这个错误 现在我在 Play 商店上发布了我的应用程序 并且我发现使用模拟器的调试版本也出现此错误 我认为已
  • Flutter 应用程序在 iOS 平台的 firebase 电话身份验证中崩溃

    我在我的项目中实现了 Firebase Phone auth 在 Android 端 一切正常 但对于 iOS 端 当我尝试从我的端发送验证码时 应用程序崩溃并失去连接 我已在下面提交了我的代码 主程序 dart class MyApp e
  • Flutter:构造函数中 List 参数的默认分配

    在定义构造函数时 是否可以将常量值分配给数据类型 List 的可选参数 例如 class sample final int x final List

随机推荐

  • 『学Vue2+Vue3』生命周期、工程化开发入门、综合案例-小兔仙首页

    day03 一 今日目标 1 生命周期 生命周期介绍 生命周期的四个阶段 生命周期钩子 声明周期案例 2 综合案例 小黑记账清单 列表渲染 添加 删除 饼图渲染 3 工程化开发入门 工程化开发和脚手架 项目运行流程 组件化 组件注册 4 综
  • 蓝牙Mesh协议三 设备配网

    前言 蓝牙Mesh配网就是通过配网器配置未配网设备 将未配网设备加入网络中 使其成为蓝牙mesh网络的节点 配网数据中包括分发网络密钥 network key 元素单播地址 unicast address 和IV Index 为了提高配网效
  • nmap基础使用

    nmap Nmap包含四项基本功能 主机发现 Host Discovery 端口扫描 Port Scanning 版本侦测 Version Detection 操作系统侦测 Operating System Detection 而这四项功能
  • el-form表单中el-form-item嵌套表格嵌套表单校验

  • spss对数据进行聚类分析(系统聚类法和k-均值聚类法)和判别分析(费歇尔和贝叶斯)。

    为了方便大家理解 以三道题为例 实现聚类分析和判别分析的演示 1 为了研究世界各国森林 草原资源的分布规律 共抽取了21个国家的数据 每个国家4项指标 原始数据见下表 试用该原始数据对国别进行系统聚类和K 均值聚类 分3类 分析 国别 森林
  • 文章发布系统的设计与实现

    摘 要 随着计算机技术的迅速发展 网络正以一种前所未有的冲击力影响着人类的生产和生活 网络的快速发展 颠覆了传统的信息传播方式 冲破了传统的时间 空间的局限性 继而引发了人类阅读方式的变革 现如今 网络阅读已成为一种新的时尚 在这种趋势下
  • ESP8266 WIFI模块实现远程wifi控制

    http www geek workshop com thread 11266 1 1 html http bbs elecfans com forum php mod viewthread tid 536464 http www extr
  • Ubuntu18.04.6 配置固定ip、ssh登录、root账号

    上文讲解了如何下载安装ubuntu https blog csdn net weixin 47491957 article details 128839639 ubuntu在安装完成后 是不能进行ssh登录 且没有root账号 本文带来如何
  • 深入剖析 Python 最常用数据结构:列表(List) & 元组(Tuple)

    1 定义 列表和元组 都是一个可以放置任意数据类型的有序集合 在大多数编程语言中 集合内元素的数据类型必须保持一致 但在 Python 的列表与元组中 没有这个约束 示例 列表 List Tom 22 33 tony 元组 Tuple Ch
  • 网易新闻的api

    一些新闻的api 一 网易 http c m 163 com nc article headline T1348647853363 0 40 html 头条 http c 3g 163 com nc article list T146728
  • 浏览器网页被劫持

    你是否遇到过网页被劫持 正常打开却发现 这种情况能容忍吗 能忍但是没必要 首先打开浏览器网页被劫持不要慌 浏览器右键打开属性 你会发现目标 后面 这里多了一个网址 把它干掉你会发现 大无语事件发生了 好家伙 想直接干掉这个还没权限 右键属性
  • 桌面图标有蓝色阴影终极解决方法

    桌面图标有蓝色阴影 桌面图标背景出现蓝色阴影是怎么回事呢 通常情况下桌面图标变成蓝色背景是由于一些错误的设置而导致的 虽然它不影响系统的正常运行 但是看起来总是不舒服的 网上也有很多处理桌面图标背景出现蓝色阴影的方法 但大都不太全面 引起这
  • Android 手机影音 开发过程记录(四)

    前一篇已经将视频播放页面的布局弄好了 这一篇主要来处理播放页面的各种逻辑 播放 暂停 上 下一个视频 音量 进度 逻辑比较多 一点一点贴代码 顶部布局的逻辑 显示系统时间 时间是一秒一秒更新的 所以可以通过循环发消息的方法来更新系统时间 相
  • 离散对数密码学原理

    一 简介 离散对数被誉为当代密码学领域的三大基础之一 1976年 Diffifie和Hellman提出了一种密钥协商协议 产生了首个离散对数系统模型 8年后 ElGamal提出了基于离散对数系统的公钥加密和签名方法 并奠定了离散对数密码学基
  • 解决Visual Studio 2017启动后不显示窗体

    今晚启动VS等了很久都没有显示窗体 电脑也没有卡死的迹象 只是在任务栏里显示了图标 试了很多常规操作 检查兼容性的时候发现一个叫devenv exe的程序似乎是导致这个问题的原因 有趣的是我在Windows上看到了有人提交了这个问题 有的人
  • apache配置双向ssl认证(笔记)

    一 CA自签 Linux下先安装openssl 安装路径于 usr local openssl 1 修改openssl配置文件 etc pki tls openssl cnf 设置好 dir usr local openssl ssl mi
  • 随笔之---基于信号量实现,生产者与消费者模型

    Class BoundedBuffer mutex new Semaphore 1 hasBuffer new Semaphore n 有n个空buffer 用来装数据 hasData new Semaphore 0 记录有数据的buffe
  • Java导出压缩包zip文件

    需要导出一些图片和一个文本 一起放到zip压缩包中 GetMapping downloadZip public void downloadZip HttpServletResponse response throws IOException
  • 解决ffmpeg视频转码后视频清晰度下降的问题

    清晰度 Chrome不支持非h264编码的mp4视频播放 可通过ffmpeg将视频转码成h264编码 ffmpeg i input mp4 vcodec h264 b v 0 output mp4 注 如果不加参数 b v 0 会有精度损失
  • Flutter Text控件在不同手机上不居中的问题

    在最近flutter页面改造过程中 发现通过Contail包裹Text控件设置上下padding时 在华为魅族和vivo等手机上并没有居中展示 所以通过查看控件属性 得以解决此类问题 可以看到上面的在华为手机上明显偏下了 使用 Contai