android 华为虚拟键盘不适配问题

华为虚拟键盘与沉浸式状态栏是有冲突的,普通app会自动适应华为虚拟键盘,不用作什么特殊处理,针对这个问题网上的什么设置之类似的都没有什么用,下面就提供一种我的解决方案。我这里是在H5 APP环境下,通过获取华为虚拟键盘的高度,然后若显示虚拟键盘,则上移webview虚拟键盘的高度。

1、工具类如下:

package com.iwiteks.PalmarTourism.util;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Point;
import android.os.Build;
import android.view.Display;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.ViewConfiguration;

/**
 * 创建于 2018/5/17 3:38 PM
 * @author spirits
 * 类说明:android手机底部导航栏控制工具类
 * 所属公司:贵州中测
 */
public class NavigationBarlUtil {/**
     * 是否显示底部导航栏
     * @return
     */
    public static boolean isNavigationBarShow(Activity activity){if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {Display display = activity.getWindowManager().getDefaultDisplay();
            Point size = new Point();
            Point realSize = new Point();
            display.getSize(size);
            display.getRealSize(realSize);
            return realSize.y!=size.y;
        }else {boolean menu = ViewConfiguration.get(activity).hasPermanentMenuKey();
            boolean back = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
            if(menu || back) {return false;
            }else {return true;
            }}}/**
     * 获取底部导航栏高度
     * @param activity
     * @return
     */
    public static int getNavigationBarHeight(Activity activity) {if (!isNavigationBarShow(activity)){return 0;
        }Resources resources = activity.getResources();
        int resourceId = resources.getIdentifier("navigation_bar_height",
                "dimen", "android");
        //获取NavigationBar的高度
        int height = resources.getDimensionPixelSize(resourceId);
        return height;
    }/**
     * 获取屏幕高度
     * @param activity
     * @return
     */
    public static int getSceenHeight(Activity activity) {return activity.getWindowManager().getDefaultDisplay().getHeight()+getNavigationBarHeight(activity);
    }
}

2.MainActivity里面onCreate()里面设置如下

if (NavigationBarlUtil.isNavigationBarShow(mActivity)) {//若系统底部导航栏显示,那么界面上移导航栏的高度
    RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(webView.getLayoutParams());
    layoutParams.setMargins(0, 0, 0, NavigationBarlUtil.getNavigationBarHeight(mActivity));
    webView.setLayoutParams(layoutParams);
} else {Log.e(TAG, "底部导航栏没有显示");
}

3.其他方法我试了很多种,都没有效果,此方法可行,希望可以帮到你。

android 华为虚拟键盘不适配问题相关推荐

  1. Android 华为虚拟导航栏适配

    Android 华为虚拟导航栏适配 在写界面的时候 然后发现在界面最底下的几行文字 正好被虚拟导航栏遮挡住了,不滑动还看不到底下的文字,所以想隐去这些导航栏. 采用下面的代码将DecorView中的属 ...

  2. Android之popWindows底部弹出挡住了华为虚拟键盘问题

    1.问题 使用popWindows的时候底部弹出遮挡华为虚拟键盘 2.解决办法 在调用下面代码之前 popupWindow.showAtLocation 加上如下的代码进行设置 popupWindow ...

  3. android 华为虚拟按键适配

    为了设置状态栏,会设置透明标签,而华为手机的虚拟按键有可能会遮挡底部导航栏. requestWindowFeature(Window.FEATURE_NO_TITLE);super.onCreate( ...

  4. 解决华为虚拟键盘问题

    1.华为的虚拟键盘解决了好久,一直都是只能适配部分机型,后来看了一篇说是完美解决Android虚拟键盘问题的,就按照这个思路做,发现一直有问题.最后发现解决的办法非常简单,我自己的华为手机是好使的,由 ...

  5. 华为 虚拟键盘_华为mate30 pro虚拟机械键盘特有体验,虽是虚拟,但却感受逼真...

    华为Mate30 pro已于26日在国内正式发布了.此外,根据了解华为Mate30系列现在已经突破了5亿的销售额.看来,华为的这个下半年旗舰手机非常受欢迎啊. 华为Mate30系列现在在国内已经发布了 ...

  6. android监控虚拟键盘,android虚拟键盘的监控,显示和隐藏

    android虚拟键盘的监控,显示和隐藏 听到一个键盘监控[显示.隐藏]的问题,上网找了下解决方案. 有提到使用onSizeChange方法监控的,也有监控onLayout方法的. 思路:在弹出键盘时 ...

  7. Android系统虚拟键盘设置

    1,要输入数据的页面可以滚动 android:windowSoftInputMode="stateVisible|adjustResize" 2,弹出的虚拟键盘把底部栏顶了上去,使 ...

  8. android 中 虚拟键盘

    虚拟键盘的原理比较简单: 在屏幕上绘制 需要用到的键盘虚拟图,然后重写触控监听方法 onTouchEvent, 然后在虚拟键盘位置写入相应的监听方法,即可实现完全触控的虚拟键盘技术. 下面通过虚拟键盘 ...

  9. Android收起虚拟键盘

    关于收起虚拟键盘,网上能找到的大多是这个: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_M ...

最新文章

  1. 信息记录拉取失败_天猫入驻为什么失败?猫店侠做详细解读
  2. putty 保存密码 自动登陆 四种方法
  3. 【技术综述】基于弱监督深度学习的图像分割方法综述​
  4. 那天的延长线在今天β
  5. redis常用命令与特性
  6. 吴恩达 深度学习 编程作业(1-2.1)- Python Basics with Numpy
  7. linux mysql 内存监控_MySQL监控性能的一些方法总结
  8. IOS数组按中文关键字以字母序排序
  9. VS中添加新项 数据选项卡下没有ADO.NET实体数据模型解决方案
  10. java中,HashMap为什么每次扩容的倍数是2,而不是1.5或者2.5?
  11. Origin画图技巧之柱状图优化
  12. ORACLE 10064诊断工具,TRCA安装与测试
  13. cosface:large margin cosine loss for deep face recognition
  14. HTML技能点--设置网页图标标志
  15. IE 浏览器下的兼容(onclick)
  16. 带宽、峰值带宽,网速是什么,它们有什么关系?
  17. SPSS-概率单位回归分析Probit回归 (随笔笔记)
  18. 搜狗音乐盒1.2单文件
  19. str在java中什么意思_Java中String的理解
  20. 阿里负责人揭秘面试潜规则【转】

热门文章

  1. 计算机老师老师的发展前进,描写教师的优美句子 将永远激励着我人生前进的脚步...
  2. 计算机控制面板的知识,计算机基础知识:控制面板和任务管理器的使用
  3. word 怎么把左边目录显示出来
  4. Linux安装JDK和Tomcat
  5. PHP低代码开发出路何在?且看Gadmin怎么破解
  6. 99分位、95分位计算 实时分位数的统计方法
  7. 【转载】常见的C++数学计算库
  8. Linux-awk数组
  9. 2011各大IT公司笔试面试题目
  10. 微信小程序毕业设计 基于微信停车位预约小程序系统开题报告