Android PopupWindow显示时,隐藏底部导航栏

本文详细介绍了如何在Android应用中使用PopupWindow,并在显示PopupWindow时保持应用全屏状态,同时隐藏底部导航栏。关键步骤包括设置系统UI标志以实现全屏效果,以及在创建PopupWindow时调整其焦点和触摸属性。
Stable-Diffusion-3.5

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

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显示时,底部导航栏会继续弹出,第一步设置的全屏选项也会无效。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值