ScrollView与WebView结合使用时,设置webview字体大小的时候出现下方留白的终极解决方案

当ScrollView嵌套WebView的时候,如果需要调用WebView的setTextSise的时候,会出现底部一大片空白,试了很多方法都不管用,无意中找到了一个解决方案,居然可以了,我也是醉了,当初居然没有想到这么做.好了,下面看代码吧。

首先写一个重置WebView高度的方法

@JavascriptInterface
public void resize(final float height) {
    MyActivity.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            webView.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels, (int) (height * getResources().getDisplayMetrics().density)));
        }
    });
}

然后在你的webview中注入JS,动态获取这个html内容的高度。

private void setupWebView() {
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            webView.loadUrl("javascript:MyApp.resize(document.body.getBoundingClientRect().height)");
            super.onPageFinished(view, url);
        }
    });
    webView.addJavascriptInterface(this, "MyApp");
}

当每一次调用setTextSize的时候只需要

 webView.loadUrl("javascript:MyApp.resize(document.body.getBoundingClientRect().height)");

重新调用这句话就OK了。

时间: 2024-11-14 12:38:41

ScrollView与WebView结合使用时,设置webview字体大小的时候出现下方留白的终极解决方案的相关文章

在Java代码上设置TextView字体大小

部分源码: /** * Set the default text size to a given unit and value. See {@link * TypedValue} for the possible dimension units. * * @param unit The desired dimension unit. * @param size The desired size in the given units. * * @attr ref android.R.styleab

UITabBar,UITabBarItem怎么用字典设置UITabBarItem字体大小和颜色,保持原图颜色(item5)

#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // 设置屏幕背景色 self.view.backgroundColor

PyCharm设置改变字体大小的快捷键

File->Settings 在搜索框搜索increase 点击Increase Font Size(增大字体)右键选择Add Mouse Shortcut 然后按Ctrl并且鼠标滚轮往上滚. 同理可以设置减小字体[设置减小字体时,在搜索框内输入decrease]

设置同样字体大小,chrome浏览器有时字体偏大的解决办法(转)

本文是找了在网上搜了好久才找到非常棒的一篇文章,很好的解决了这个问题. 原文地址:https://github.com/amfe/article/issues/10 这个特性被称做「Text Autosizer」,又称「Font Boosting」.「Font Inflation」,是 Webkit 给移动端浏览器提供的一个特性:当我们在手机上浏览网页时,很可能因为原始页面宽度较大,在手机屏幕上缩小后就看不清其中的文字了.而 Font Boosting 特性在这时会自动将其中的文字字体变大,保证

Android: 设置 app 字体大小不跟随系统字体调整而变化

在做 app 内字体大小的需求,类似于 微信中设置字体大小. 那么就需要 app 不跟随系统字体大小调整而变化,找到了两个方法. 方法1: 重写 getResource() 方法,修改 configuration 为 setToDefaults() 1 /** 2 * 设置 app 不随着系统字体的调整而变化 3 */ 4 @Override 5 public Resources getResources() { 6 Resources resources = super.getResource

响应式网页设计:rem设置网页字体大小自适应

首先简单科普一下什么是响应式网页.响应式网页是指会根据输出设备的分辨率不同,而自动调整布局的网页.同时,在输出设备分辨率改变时,也能及时自动调整.说穿了,就是三个字:自适应. 响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求.响应式的初衷是为了让信息更好的传递交流,让所有人无障碍的获取信息,同时这也是 Web 的初衷. 当我们每天面对缤纷的互联网世界的时候,文字不仅仅传递给我们众多的信息资讯,而且在设计师的手里,文字在网页中的排版承载着一种艺术的直觉. 网页中常用的文字大小单位是

eclipse主题设置以及字体大小

不改变主题情况下设置豆沙绿保护色以及字体大小1.字体大小设置2.护眼豆沙绿颜色设置windows->Preferences->General->Editor->Text Editors-->color-->自定义颜色(设置参数:色调 85 饱和度 123 亮度205)效果如下 目前工程栏背景还是白色,这里涉及到windows系统软件窗口色,要调的话以后打开其他软件窗口也会是绿色.设置方法如下自定义颜色和之前eclipse调的一样最终效果 其实用下来,个人感觉豆沙绿的比黑

PyCharm中设置菜单字体大小

file-->setting,然后选择appearance,下图右侧红色边框中的内容即设置菜单的字体和大小

Eclipse——如何设置代码字体大小

eclipse默认字体太小,1920*1080下分辨不清楚,接下来介绍一下如何更改默认字体大小: 1.window-Preferences 2.General-Appearance-Colors and Fonts-Basic-Text Font-Edit,接下来改变字体大小后,确定并应用即可