一文解决RN0.58部分安卓手机text显示不全问题

简介: 一文解决RN0.58部分安卓手机text显示不全问题

最近项目开发中遇到一个Android的适配问题,同事的红米手机K20pro上项目App中部分页面上的文本显示不全,比如下面这样微信图片_20220610112558.png同事的手机升级到了最新的miui12, 默认的手机字体是小米兰亭pro,正好我这边有个小米8的测试机,前两天也升级到了最新的MIUI12系统,同样的页面在小米8上显示正常。

遇到这种问题确实让人头大,怎么办?搞呗。


在GitHub上react-native项目中搜索相关问题,下面是就是对相关问题的讨论issues,感兴趣的朋友可以去看看。Github相关问题:issues,发现不只是部分小米手机会出现此问题, 部分oppo,one plus, lG, 三星及google手机上也会出现类似问题。


解决方案:


1.文字末尾添加空格


Example: {empIDText + " "}
before it was like: {empIDText}

2.设置text组件的fontFamily


<Text style={{fontFamily: ""}}>

3. 设置text组件的textBreakStrategy


有关textBreakStrategy的('simple', 'highQuality', 'balanced')的不同之处,可以参考stack overflow上的问题:What is the difference between simple, highQuality, balanced for textBreakStrategy property in React Native?

<Text key={node.key} textBreakStrategy="simple">{node.content}</Text>

4.全局设置text组件的fontFamily


import React, { Component } from 'react';
import { View, Platform, Text } from 'react-native';
const defaultFontFamily = {
    ...Platform.select({
        android: { fontFamily: '' }
    })
};
const oldRender = Text.render;
Text.render = function(...args) {
    const origin = oldRender.call(this, ...args);
    return React.cloneElement(origin, {
        style: [defaultFontFamily, origin.props.style]
    });
};

通过改写覆盖 Text 组件 的 render,实现修改字体全局配置,代码放到入口文件,比如 app.js 里面就可以了。


这种方案会全局改掉字体,覆盖系统默认字体,这样不会覆盖默认字体,出问题的 Text 组件也可以显示正常~

总结,前3中方案需要在每个出问题的 Text 组件设置,如果比较多,就不是很灵活,也比较繁琐;第3中方案就可以一劳永逸的解决这个问题了。

目录
相关文章
|
15天前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
163 2
|
1月前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
121 0
|
28天前
|
缓存 Android开发 开发者
安卓系统优化:提升手机性能的秘诀
【5月更文挑战第31天】本文将探讨如何通过一系列简单的步骤和技巧,对安卓系统进行优化,以提升手机的性能。我们将从清理无用文件、管理后台应用、调整系统设置等方面入手,帮助你的安卓设备运行更加流畅。
|
1月前
|
Android开发
【苹果安卓通用】xlsx 和 vCard 文件转换器,txt转vCard文件格式,CSV转 vCard格式,如何批量号码导入手机通讯录,一篇文章说全
本文介绍了如何快速将批量号码导入手机通讯录,适用于企业客户管理、营销团队、活动组织、团队协作和新员工入职等场景。步骤包括:1) 下载软件,提供腾讯云盘和百度网盘链接;2) 打开软件,复制粘贴号码并进行加载预览和制作文件;3) 将制作好的文件通过QQ或微信发送至手机,然后按苹果、安卓或鸿蒙系统的指示导入。整个过程简便快捷,可在1分钟内完成。
|
1月前
|
Android开发
【通讯录教程】苹果安卓鸿蒙系统通用,如何大批量导入手机号码到手机的通讯录,下面教你方法,只需1分钟搞定几万个号码的导入手机电话本
该文介绍了一种快速批量导入手机通讯录的方法,适用于处理大量手机号的需求,如微商管理、客户资料整理等。在QQ同步助手开始收费后,提供了免费的替代方案。步骤包括:下载批量导入软件(链接提供腾讯云盘和百度网盘地址),清空通讯录(非必需),制作符合格式的通讯录文件,并按操作系统(苹果、安卓或鸿蒙)进行导入。整个过程只需1分钟,简便快捷。
|
14天前
|
前端开发 JavaScript Android开发
手机APP开发|基于安卓APP实现掌上党支部——党员app
手机APP开发|基于安卓APP实现掌上党支部——党员app
|
30天前
|
安全 Android开发 iOS开发
探索安卓与iOS手机操作系统的发展趋势与差异
在移动互联网时代,安卓和iOS手机操作系统一直处于激烈的竞争之中。本文将从技术角度出发,探讨两大操作系统的发展趋势、特点以及差异,并分析其对用户体验和开发者生态的影响,旨在为读者提供对移动操作系统发展方向的深入了解。
|
1月前
|
Android开发
安卓远离手机app
远离手机是专门为防止年轻人上瘾而打造的生活管理类的软件,适度用手机,保护眼睛,节约时间。
18 0
安卓远离手机app
|
1月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
70 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
1月前
|
存储 数据库 Android开发
Android实现手机内存存储功能
Android实现手机内存存储功能
37 2