解决WebView底部空白,真实有效

项目中的WebView在加载三方网页时出现底部白屏,通过在JavascriptInterface注册并调用重新设置WebView高度的方法,以及在WebViewClient的onPageFinished中处理,成功解决了这一问题。关键代码包括创建BaseFunc类,初始化JS调用本地方法,以及在onPageFinished中更新WebView布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中有牵涉新闻的部分,新闻里面用的是WebView和RecyclerView

因为惠引入很多三方的web地址,部分WebView出现底部白屏,也有二级页白屏的问题(这个是因为自身原因,重定向后没有重新设置高度)

找了相关资料,总算是给解决了

以下是解决白屏的代码

首先在JavascriptInterface 里面注册一个 重新设置WebView的方法

public class BaseFunc {

public BaseFunc(Activity mActivity, WebView webView)

{ this.mActivity = mActivity;

this.webView = webView;
}

//注册一个重新计算高度的方法

@JavascriptInterface

public void resize(final float height) {

mActivity.runOnUiThread(new Runnable() {

@Override

public void run() {

webView.setLayoutParams(new RelativeLayout.LayoutParams(mActivity.getResources().getDisplayMetrics().widthPixels, (int) (height * mActivity.getResources().getDisplayMetrics().density))); } }); }
}

以下是WebView页面中的代码

/** * 初始化js调用本地的方法 basefunc.go

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值