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

前端之家收集整理的这篇文章主要介绍了android – 如何使文本适合屏幕(文本换行)在WebView与KitKat前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的WebView与 Android 4.4有一个问题.在KitKat之前,文本会自动适应网页浏览中的所有设备分辨率.但今天4.4中已经不再适合了.我认为这是因为WebView基于Chromium与KitKat的更新.

这是同一页面的2个截图:

One from Galaxy Nexus (Android 4.3)

One from Nexus 5 (Android 4.4 and WebView based on Chromium)

你知道在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>

解决方法

看起来这是使用NARROW_COLUMNS.这是在KitKat的 deprecated.

但是,添加了一种新的布局算法,可以解决这个问题,这里有一个例子:
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);
}

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

大多数反对意见似乎是在移动设备上显示桌面版网站的一般浏览器问题.他们喜欢旧的方式,但是我还没有看到另外一个浏览器执行了文本包装算法正在做的事情.

猜你在找的Android相关文章