修复小米某机型首页底部导航栏icon展示不全问题
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
package com.yunbao.common.utils;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Build;
|
||||
import android.view.ViewConfiguration;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
public class NavigationBarUtils {
|
||||
|
||||
public static boolean hasNavigationBar(Activity activity) {
|
||||
boolean hasNavigationBar = false;
|
||||
int resourceId = activity.getResources().getIdentifier("config_showNavigationBar", "bool", "android");
|
||||
if (resourceId > 0) {
|
||||
hasNavigationBar = activity.getResources().getBoolean(resourceId);
|
||||
}
|
||||
|
||||
try {
|
||||
hasNavigationBar |= (Boolean) ViewConfiguration.class.getDeclaredMethod("hasNavigationBar").invoke(ViewConfiguration.get(activity));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// Fall back on checking the navigation bar height, if available
|
||||
if (!hasNavigationBar && hasNavBarHeight()) {
|
||||
hasNavigationBar = true;
|
||||
}
|
||||
|
||||
return hasNavigationBar;
|
||||
}
|
||||
|
||||
public static boolean hasNavBarHeight() {
|
||||
Resources res = Resources.getSystem();
|
||||
int resourceId = res.getIdentifier("navigation_bar_height", "dimen", "android");
|
||||
if (resourceId > 0) {
|
||||
return res.getDimensionPixelSize(resourceId) > 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 示例:在Activity中使用该方法
|
||||
public static boolean checkNavigationBar(Activity activity) {
|
||||
return hasNavigationBar(activity);
|
||||
}
|
||||
|
||||
public static int checkBarHeight(Activity activity) {
|
||||
int result = 0;
|
||||
Resources resources = activity.getResources();
|
||||
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
|
||||
if (resourceId > 0) {
|
||||
result = resources.getDimensionPixelSize(resourceId);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void setBarStatus(RelativeLayout rt_main_tab, Activity mContext){
|
||||
if("Xiaomi".equals(Build.BRAND)&&"2210132C".equals(Build.MODEL)){
|
||||
ViewGroup.LayoutParams params = rt_main_tab.getLayoutParams();
|
||||
params.height =params.height+ NavigationBarUtils.checkBarHeight(mContext);
|
||||
rt_main_tab.setLayoutParams(params);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user