diff --git a/imagepicker/src/main/java/com/lzy/imagepicker/util/NavigationBarChangeListener.java b/imagepicker/src/main/java/com/lzy/imagepicker/util/NavigationBarChangeListener.java index 83d6e07..648eb19 100644 --- a/imagepicker/src/main/java/com/lzy/imagepicker/util/NavigationBarChangeListener.java +++ b/imagepicker/src/main/java/com/lzy/imagepicker/util/NavigationBarChangeListener.java @@ -5,36 +5,21 @@ import android.view.View; import android.view.ViewTreeObserver; - /** * Created by z-chu on 2017/9/4 * 用于监听导航栏的显示和隐藏,主要用于适配华为EMUI系统上虚拟导航栏可随时收起和展开的情况 */ - public class NavigationBarChangeListener implements ViewTreeObserver.OnGlobalLayoutListener { - - /** - * 监听竖屏模式导航栏的显示和隐藏 - */ - public static final int ORIENTATION_VERTICAL = 1; - - /** - * 监听横屏模式导航栏的显示和隐藏 - */ - public static final int ORIENTATION_HORIZONTAL = 2; + public static final int ORIENTATION_VERTICAL = 1; //监听竖屏模式导航栏的显示和隐藏 + public static final int ORIENTATION_HORIZONTAL = 2; //监听横屏模式导航栏的显示和隐藏 private Rect rect; - private View rootView; - private boolean isShowNavigationBar = false; - private int orientation; - private OnSoftInputStateChangeListener listener; - public NavigationBarChangeListener(View rootView, int orientation) { this.rootView = rootView; this.orientation = orientation; @@ -51,15 +36,13 @@ public void onGlobalLayout() { } else if (orientation == ORIENTATION_HORIZONTAL) { heightDiff = rootView.getWidth() - (rect.right - rect.left); } - int navigationBarHeight = Utils.hasVirtualNavigationBar(rootView.getContext()) ? - Utils.getNavigationBarHeight(rootView.getContext()) : 0; + int navigationBarHeight = Utils.hasVirtualNavigationBar(rootView.getContext()) ? Utils.getNavigationBarHeight(rootView.getContext()) : 0; if (heightDiff >= navigationBarHeight && heightDiff < navigationBarHeight * 2) { if (!isShowNavigationBar && listener != null) { listener.onNavigationBarShow(orientation, heightDiff); } isShowNavigationBar = true; } else { - if (isShowNavigationBar && listener != null) { listener.onNavigationBarHide(orientation); } @@ -86,9 +69,9 @@ public static NavigationBarChangeListener with(Activity activity) { } public static NavigationBarChangeListener with(View rootView, int orientation) { - NavigationBarChangeListener softInputHeightListener = new NavigationBarChangeListener(rootView, orientation); - rootView.getViewTreeObserver().addOnGlobalLayoutListener(softInputHeightListener); - return softInputHeightListener; + NavigationBarChangeListener changeListener = new NavigationBarChangeListener(rootView, orientation); + rootView.getViewTreeObserver().addOnGlobalLayoutListener(changeListener); + return changeListener; } public static NavigationBarChangeListener with(Activity activity, int orientation) { diff --git a/imagepicker/src/main/java/com/lzy/imagepicker/util/Utils.java b/imagepicker/src/main/java/com/lzy/imagepicker/util/Utils.java index c25d777..28581d4 100644 --- a/imagepicker/src/main/java/com/lzy/imagepicker/util/Utils.java +++ b/imagepicker/src/main/java/com/lzy/imagepicker/util/Utils.java @@ -65,13 +65,11 @@ public static DisplayMetrics getScreenPix(Activity activity) { /** dp转px */ public static int dp2px(Context context, float dpVal) { - return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, - dpVal, context.getResources().getDisplayMetrics()); + return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpVal, context.getResources().getDisplayMetrics()); } /** * 判断手机是否含有虚拟按键 99% - * */ public static boolean hasVirtualNavigationBar(Context context) { boolean hasSoftwareKeys = true; @@ -106,9 +104,6 @@ public static boolean hasVirtualNavigationBar(Context context) { */ public static int getNavigationBarHeight(Context context) { int resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android"); - return resourceId > 0 ? - context.getResources().getDimensionPixelSize(resourceId) : - 0; + return resourceId > 0 ? context.getResources().getDimensionPixelSize(resourceId) : 0; } - }