【Android】自定义带进度条的WebView,修复不弹出软键盘的BUG

本文记录了开发中创建带有进度条的ProgressWebView过程,解决了使用网上示例导致输入框无法弹出软键盘的bug。通过自定义构造函数和初始化方法,确保了响应点击和避免XML编辑时的错误提示。同时提供了进度条的drawable配置,并展示了在Activity中调用ProgressWebView的示例,强调启用JS的重要性。
摘要由CSDN通过智能技术生成

记录下最近开发中研究的带进度条的WebView 自定义类吧。

其实网上有不少这样的帖子,但是都没有一个完整的好用的例子,最关键的是,用网上的例子后有一个很明显的bug,就是遇到输入框的话没法弹出软键盘。研究了好久总算搞定了。特此记录下。

直接上源代码,关于代码的解释,个人感觉注释中已经添加的足够清楚了。

ProgressWebView

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;

import com.touziqu.sealily.newinvestmentgo.R;
import com.touziqu.sealily.newinvestmentgo.Utils.LogUtils;
import com.touziqu.sealily.newinvestmentgo.Utils.OnWebCallBack;

/**
 * File Description: 自定义带有进度条的webview
 *  继承自{@link WebView}
 * Created by KAKA on 16/1/19 22:21
 *  主要在{@link ProgressWebView#ProgressWebView(Context, AttributeSet, int)}中完成实例的构建
 *  使用{@link ProgressWebView#ProgressWebView(Context, AttributeSet)}时要注意destyle类型的设置
*/

@SuppressWarnings("deprecation")
public class ProgressWebView extends WebView {
    /**
     * 进度条
     */
    private ProgressBar progress_bar_;

    /**
     * 回调
     */
    private OnWebCallBack onweb_callback_;

    /**
     * Description: Default Constructor
     * Created by KAKA on 16/1/19 22:23
    */
    public ProgressWebView(Context context) {
        super(context);
    }

    /**
     * 不能直接调用this(context, attrs,0),最后style是0的话,会导致无法响应点击动作。
     * 但是如果直接把最后一位写成 com.android.internal.R.attr.webViewStyle 编译时会弹出错误提示,原因:
     * You cannot access id's of com.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值