【react-natvie】react-native Android webview下h5使用rem布局会随系统字体放大缩小的解决方案

本文探讨了在react-native的Android webview环境下,H5使用rem布局会随系统字体变化的问题,导致布局混乱。解决方案包括尝试在原生Android代码中阻止字体缩放无效后,转而在H5端通过创建特殊容器来动态计算并修正字体大小,以适应Android系统的字体缩放。该方法仅适用于Android,iOS不受系统字体调整影响。
摘要由CSDN通过智能技术生成

问题描述:

react-native Android webview下h5使用rem布局会随系统字体放大缩小

Android普通浏览器里,在浏览器直接调整字体大小(例如UC、QQ浏览器等都支持改变浏览器里字体大小),h5使用rem布局会随浏览器设置的字体放大缩小

由于Rem布局本身已经考虑到了不同机型/浏览器/分辨率的适配问题,这个时候再随系统字体、浏览器字体放大缩小就会造成布局的混乱,所以这里介绍一下解决方案

 

解决方案:

(这里是试错方案)针对react-native里,有尝试使用在原生android里使用对根字体指定不用缩放,但实际没有起到效果(具体在原生里是这么改的,见下面代码)

react-native-webview/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java

WebSettings settings = webView.getSettings(); // 找到这行代码,在之后增加下面这行

settings.setTextZoom(100);


既然原生的方案不起效果,那么还是从网页的方案入手

假设之前的rem计算方案为,根字体等于屏宽的十分之一

// 获取屏幕宽度
var width = $(window).width();
var initFontSize;
var remCount = 10;
initFontSize = width / remCount;
// 设置根
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值