gpt4 book ai didi

android - 显示弹出窗口时不调用 onBackPressed

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:27 28 4
gpt4 key购买 nike

我想在显示弹出窗口时处理后退。在某些情况下,我想关闭它,在某些情况下,我不想在弹出窗口中执行某些任务。

当弹窗显示时,不会调用Activity onBackPress。那么如何在弹窗显示时捕获回按事件呢?

最佳答案

您需要在 PopupWindow 上调用 setBackgroundDrawable() 并将背景设置为非 null。这听起来很奇怪,但是如果 background 没有设置为 PopupWindow 上的某些内容,那么它将无法检测到来自 Activity 的事件例如触摸窗口外部或按下后退按钮。

几天前我遇到了同样的问题。我将尝试在有人解释为什么会这样的地方找到 SO 答案,但这可能需要我一点时间。同时,试一试它应该会起作用。

Found it

我还没有机会测试它,但你可以尝试添加一个 keyEventListener 并做这样的事情

public boolean onKeyDown(int keyCode, KeyEvent event) 
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
// put your code here
}

并将setOutsideTouchable(true) 添加到您的PopupWindow 对象并调用update()。如果这不起作用,那么您可能不得不在显示弹出窗口时禁用后退按钮,并将您自己的 Button 添加到窗口。我还没有发现任何其他东西可以让您从按下后退按钮中获取事件。

关于android - 显示弹出窗口时不调用 onBackPressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17655239/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com