今天博主做项目的时候,侧滑菜单里面的两个底部对齐的按钮被虚拟机的底部导航栏给遮住了,解决思路是首先检测设备时候有底部导航栏,如果有则测量出底部导航栏的高度,然后手动用代码设置控件距离底部的按钮,如果没有底部导航栏则不做操作。下面给出几个需要用到的方法。
/**
* 判断是否存在NavigationBar
* @param context:上下文环境
* @return:返回是否存在(true/false)
*/
public boolean checkDeviceHasNavigationBar(Context context) {
boolean hasNavigationBar = false;
Resources rs = context.getResources();
int id = rs.getIdentifier("config_showNavigationBar", "bool", "android");
if (id > 0) {
hasNavigationBar = rs.getBoolean(id);
}
try {
Class systemPropertiesClass = Class.forName("android.os.SystemProperties");
Method m = systemPropertiesClass.getMethod("get", String.class);
String navBarOverride = (String) m.invoke(systemPropertiesClass, "qemu.hw.mainkeys");
if ("