android – WebView没有调整大小

前端之家收集整理的这篇文章主要介绍了android – WebView没有调整大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经为Firefox OS开发了一个Web应用程序,但我想让它在 Android中“本机”运行.我的应用程序包含一个对话框,它是一个div,当可见时填充整个页面,我使用Firefox响应式设计工具进行了测试,它确实正确调整大小.当出现软键盘时,我希望对话框调整大小到剩下的视口,因为对话框底部有一些按钮.

我用一个只包含WebView的活动创建了一个应用程序.我希望视图在键盘出现时调整大小,所以我使用了:

android:windowSoftInputMode="stateUnspecified|adjustResize"

键盘可见时,它似乎对WebView没有任何影响.我在网上看了很多人抱怨这个问题,但他们都有相同的共同点,他们使用的是Theme.Black.NoTitleBar.Fullscreen主题,我不是.我尝试了解决这个问题的所有解决方案,但没有一个能够解决问题.

然后我开始怀疑WebView中是否存在错误,这意味着它没有调整大小.所以,我写了一个自定义View,它在onLayout中打印了尺寸.

@Override
protected void onLayout(boolean changed,int l,int t,int r,int b) {
    Log.d(TAG,t + " " + r + " " + b + " " + l);
}

当然,当键盘出现和失望时,视图正确调整大小.所以,我做了一些研究,我找到了一些答案,说你需要隐藏WebView,重新加载它,然后再显示它.

@Override
protected void onLayout(boolean changed,t + " " + r + " " + b + " " + l);

    mWebView.setVisibility(View.GONE);
    mWebView.layout(l,t,r,b);
    mWebView.invalidate();
    mWebView.reload();
    mWebView.setVisibility(View.VISIBLE);
}

再次,这并没有解决我的问题. (作为一个侧面点,这是一个带有单个.html文件的Web应用程序,JS会导致应用程序中所有元素的状态在运行时发生变化,因此重新加载它不是一种选择.)

我的问题是,当键盘可见时,是否有人知道在加载内容后调整WebView大小的方法.

解决方法

这不完全是你的问题的答案,但是你也会注意到WebView在变大时会重新调整大小,但是当内容的高度降低时不会减少,因为我已经回答了这个问题: WebView height = wrap_content with changing font size doesn’t work

Google问题跟踪器上引用了错误/功能
https://code.google.com/p/android/issues/detail?id=18726

请不要怪我,我只是想指出你可能遇到的更多问题与WebView.

猜你在找的Android相关文章