Android PopupWindow显示时,隐藏底部导航栏
第一步:app全屏,常规设置
final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
getWindow().getDecorView().setSystemUiVisibility(flags);
第二步:创建PopupWindow
View contentView = LayoutInflater.from(host).inflate(R.layout.popup_window, null);
PopupWindow popupWindow = new PopupWindow(contentView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
contentView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
popupWindow.setOutsideTouchable(true);
popupWindow.setTouchable(true);
popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
popupWindow.setAnimationStyle(R.style.popuWindowAnimation);
popupWindow.showAtLocation(contentView, Gravity.TOP | Gravity.START, 0, 0);
说明:正常的这么设置后,第一步中隐藏的底部导航栏,在第二步PopupWindow显示时便不会再弹出。但其中重要的一点:
popupWindow.setFocusable(false)
默认setFocusable参数为false,若参数设为true,则在PopupWindow显示时,底部导航栏会继续弹出,第一步设置的全屏选项也会无效。
本文详细介绍了如何在Android应用中使用PopupWindow,并在显示PopupWindow时保持应用全屏状态,同时隐藏底部导航栏。关键步骤包括设置系统UI标志以实现全屏效果,以及在创建PopupWindow时调整其焦点和触摸属性。

438

被折叠的 条评论
为什么被折叠?



