webView.getSettings().setTextZoom(100);
.card { display: flex; flex-wrap: wrap; min-width: 0; }
安卓 WebView 里 settings.setTextZoom(130) 之后,原本 12px 的正文变成 15.6px,卡片标题换行,两列布局挤成一列。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:textZoom 会整体放大文字,但 CSS 像素布局没跟着变,文字撑破容器。样式按 12px 写死,没有考虑系统字体缩放。
「WebView textZoom」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。监控和日志的时间要对上,时区不一致会多绕很大一圈。
临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。
一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。
处理上按这个顺序:确认 textZoom 是否必须设置 非必要就回到 100;必须放大时布局用 rem 和弹性宽度 允许换行;关键区域限制最大行数 避免撑破;在 100 和 130 两档下截图对比。
确认没问题再收工,textZoom 130 时两列仍保持两列,正文放大但容器不溢出。
