如何使文本适合屏幕(文本换行)在WebView与KitKat

我在Android 4.4中使用WebView时遇到问题。 在KitKat之前,文字在网页浏览中自动适应所有设备的分辨率。 但是现在不再适合4.4了。 我认为这是因为基于Chromium和KitKat的WebView更新。

以下是同一页的两张截图:

一个来自Galaxy Nexus(Android 4.3)

一个来自Nexus 5(Android 4.4和基于Chromium的WebView)

你知道是否有一个新的select,以适应webview中的屏幕文字?

注:我不认为我的布局是与我的问题有关,但在这里它是无论如何:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout> 

  • android - 从webview中获取文本
  • 在android中的webView中打开Url
  • 在android中渲染epub文件
  • Android:Flash内容会打破WebView边界并重叠原生布局元素
  • Android webview后期渲染
  • Webview文本select不清除
  • 点击在WebView中不起作用
  • Android PhoneGap插件,UI标签栏,调整WebView大小
  • 看起来这是使用NARROW_COLUMNS 。 这在KitKat中已被弃用 。

    但是,新增了一个可以解决这个问题的布局algorithm,这里有一个例子: https//github.com/GoogleChrome/chromium-webview-samples

    主要代码是:

     // Use WideViewport and Zoom out if there is no viewport defined settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true); settings.setLayoutAlgorithm(LayoutAlgorithm.TEXT_AUTOSIZING); 

    另一个选项是启用缩放:

     // Enable pinch to zoom without the zoom buttons settings.setBuiltInZoomControls(true); if(Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) { // Hide the zoom controls for HONEYCOMB+ settings.setDisplayZoomControls(false); } 

    新的布局algorithm可能无法解决所有的问题,并且不清楚如何可靠地模仿旧的包装行为。

    大多数反对意见似乎是在手机上显示桌面网站的一般浏览器问题。 他们喜欢旧的方式,但我没有看到其他浏览器做文本包装algorithm正在做什么。