Android Webview - 缩放到设备宽度后底部出现空白

3
我正在使用以下代码将我的webview缩放以适应屏幕宽度:

webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);

这个方法可以解决问题,但是现在我的内容底部会出现一片空白区域。这片空白区域的高度与缩放大小成正比关系。所以对于较小的设备,这个空白区域的大小更大。
我认为滚动条的大小在缩放后没有被重新计算。这种假设是因为当通过点击屏幕进行缩放时,空白区域消失了。虽然Android 2.3上运行良好,但在4.0上却不行。
我的问题是如何强制滚动条在缩放后重新计算。或者是否有其他解决方案。
谢谢。
附:以下是我在xml文件中定义webview的方式。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#FFFFFF" >

    <WebView
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/web_view"
                android:background="#AAFFFFFF"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />

</LinearLayout>
</ScrollView>

或者可能是正在查看的内容比高度更宽,因此当您基于宽度进行缩放时,它使内容视图像素比屏幕短!!! - trumpetlicks
不,它肯定更高,正如我所说,在2.3操作系统上,缩放可以修复滚动条的高度,并且白色空间会消失。 - Asad Ather
你是如何在XML或代码中定义你的WebView的?你是否为WebView的两个维度都定义了fill_parent?我有点瞎猜,但还是要问一下 :-) - trumpetlicks
我已经更新了我的问题,添加了XML。 - Asad Ather
为什么你在一个ScrollView中嵌套了一个LinearLayout和一个WebView呢?WebView已经继承了ScrollView并实现了它自己的滚动,所以还需要另一个ScrollView吗?实际上这里是一个ScrollView中嵌套了另一个ScrollView!其次,我注意到你的WebView的android:layout_height属性设置为"wrap_content"。 - trumpetlicks
谢谢,我贴上代码后也在想同样的问题。移除 ScrollView 之后它看起来不错。请把您的评论添加为答案,这样我就可以标记它了。 - Asad Ather
1个回答

7
首先,为什么要在ScrollView中使用LinearLayout内的WebView?WebView继承了ScrollView并实现了自己的滚动方式,那么另一个ScrollView有什么作用呢?实质上,你将会拥有两个滚动条!!!其次,我也看到你在WebView的“android:layout_height”属性中使用了“wrap_content”。

4
因为 WebView 后面还有其他视图,所以我在 ScrollView 中放置了一个 WebView。 - fhucho
我的情况也一样,但当我将layout_height设置为wrap_content时,问题得到了解决,因此不需要使用webview scroller,所有组件都只需使用父级scrollview。 - Hilal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接