一、概述
在项目中,测试发现在一些华为手机的屏幕适配上出现了问题,主要是因为华为Mate等一些系列的手机有一个虚拟按键的设计.当这些虚拟按键由用户手势滑出,或默认显示的话,就会遮挡我们本身的应用布局.比如欢迎界面过后是四个Fragment,那么底部的四个tab就会被虚拟的导航栏遮住,非常难看.
当然,欢迎页的图片适配也同样会出现问题.
Google后得出第一个问题的解决方案.第二个图片的问题则用自己摸索的方式解决,当然也非常简单.
二、布局由于虚拟按键导致导航栏顶上去的解决方法
在我们的项目中加载Fragment的MainActivity,以及其他一般的Activity继承的BaseActivity中的onCreate方法中添加如下代码:
if (AndroidWorkaround.checkDeviceHasNavigationBar(this)) {
AndroidWorkaround.assistActivity(findViewById(android.R.id.content));
}
其中AndroidWorkaround使我们为了解决该问题而封装的类,也可以看作是一个特定的工具类:
/**
* 解决底部屏幕按键适配
* Created by Mercury on 2016/10/25.
*/
public class AndroidWorkaround {
public static void assistActivity(View