编辑:此错误是Webview覆盖默认的最小字体大小.
在我的示例中,Webview将最小字体大小设置为某处的8px.解决方案如下:)
Android Webview rem单位缩放方式大.
所有rem单位在Android Webview中显示的次数太大且不合适.
唯一正常工作的rem标签是font-size:30rem;对于文本.其他一切
似乎扩大规模.即100rem = 800px @ 1.0px比例.
奇怪的是,在我缩放时传递8.0px后,框开始放大.
此示例适用于支持除Webview之外的rem单元的每个浏览器.
有人有想法吗?
我试过mWebView.getSettings().setLoadWithOverviewMode(true);
我试过mWebView.getSettings().setUseWideViewPort(true);
我试过< meta name =“viewport”content =“width = device-width,user-scalable = no”/>和其他变化.
我已经尝试加载默认的用户样式表.
rem.html
-
+
Scale
var scale = window.devicePixelRatio;
Update_Scale();
function ScaleDown(){
scale -= 0.5;
Update_Scale();
}
function ScaleUp(){
scale += 0.5;
Update_Scale();
}
function Update_Scale(){
document.documentElement.style.fontSize = parseFloat(scale).toFixed(1)+"px";
document.getElementById("text").innerHTML = parseFloat(scale).toFixed(1)+"px";
}
AndroidManifest.xml中
package="digitalknob.remTest"
android:installLocation="auto"
android:versionCode="1"
android:versionName="1.0">
android:icon="@mipmap/icon"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
WebviewActivity.java
package digitalknob.remTest;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class WebviewActivity extends Activity {
private WebView mWebView;
@Override protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
mWebView=(WebView)findViewById(R.id.webview_webview);
mWebView.setWebContentsDebuggingEnabled(true); //Debuggable in Chrome
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.loadUrl("http://digitalknob.com/rem.html");
}
@Override public void onBackPressed(){
System.exit(0);
}
}
webview.xml
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:id="@+id/webview_webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
解决方法:
我发现设置以下webview设置将作为此错误的解决方法.
mWebView.getSettings().setMinimumFontSize(1);
mWebView.getSettings().setMinimumLogicalFontSize(1);
这些设置实际上只应该用于实际文本显示,而不是基于rem的定位/大小调整.这必须是一个android webview bug.
标签:css,android,unit-testing,webview,html
来源: https://codeday.me/bug/20190611/1218370.html