Android开发经验谈Android开发

解决华为安全键盘遮挡Toast的方案

2020-04-17  本文已影响0人  JuliusL

在每次弹出Toast的时候,
判断是不是华为机型,
判断获取当前焦点View是否是EditText,
判断inputType是不是密码类型(确保弹出的是安全键盘),
如果以上条件都符合,则收缩键盘。

public static void showToast(Context mContext, CharSequence msg) {
        if(mTv==null){
            mView = LayoutInflater.from(mContext).inflate(R.layout.view_toast,null);
            mTv = mView.findViewById(R.id.tv);
        }
        mTv.setText(msg);
        com.denglin.duck.util.androidcodeutil.ToastUtils.showCustomShort(mView);

        //以下代码是为了解决华为安全键盘遮挡Toast问题
        if(RomUtils.isHuawei()&&mContext instanceof Activity){
            Activity activity = (Activity) mContext;
            View focusView = activity.getWindow().getDecorView().findFocus();
            if(focusView instanceof EditText){
                EditText et = (EditText) focusView;
                if(et.getInputType()==(InputType.TYPE_TEXT_VARIATION_PASSWORD|InputType.TYPE_CLASS_TEXT)){
                    QMUIKeyboardHelper.hideKeyboard(focusView);
                }
            }
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读