三星 S8、S8+、S9 等上的底部导航栏在关闭时会导致 UI 和动画噩梦,导致视图从应用程序的顶部和底部移入和移出。对于这些设备,如果导航栏打开,一切都会完美运行,但如果关闭,所有动画都会低于导航栏的高度。我的想法是调整动画,但是,我很难弄清楚手机何时有底部导航栏并且它被关闭。
我创建了一个辅助方法,它可以很好地让我知道设备已打开导航栏。对于所有具有导航栏且已打开的设备,此函数将返回 true。但我想要处理的情况是当它关闭时。问题是,关闭就像所有其他手机一样。如何解决这个问题?有没有办法强制导航栏永久显示?
public static boolean hasNavBar(@NonNull Activity activity, @NonNull View rootView) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
return true;
}
// retrieve the window manager for showing custom windows
Display d = activity.getWindowManager().getDefaultDisplay();
DisplayMetrics realDisplayMetrics = new DisplayMetrics();
d.getRealMetrics(realDisplayMetrics);
int viewHeight = rootView.getHeight();
if (viewHeight == 0) {
return true;
}
int realHeight = realDisplayMetrics.heightPixels;
return realHeight != viewHeight;
}
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)