当我们单击 android 设备中的后退按钮时,Sencha 触摸选择字段没有关闭

Posted

技术标签:

【中文标题】当我们单击 android 设备中的后退按钮时,Sencha 触摸选择字段没有关闭【英文标题】:Sencha touch select field is not closing when we clicks the back button in android device 【发布时间】:2012-09-24 06:55:12 【问题描述】:

我已经使用 sencha touch 2 完成了应用程序。后台逻辑通过应用程序中的路由进行维护。后台逻辑在 ipad/android 设备中运行得非常好。当我们单击设备中的后退按钮未关闭弹出选择字段弹出窗口时,一个问题是在 android 设备中引起问题。在此页面中,我有选择字段,当单击选择字段时,它将显示带有选项 cancel 的选择字段弹出窗口strong> 和 完成,我不会直接选择任何选项,我会在 android 设备中按下后退按钮。它没有关闭弹出窗口,但它会返回上一页,但选择字段弹出窗口仍然打开而不关闭。 我需要在 Android 设备中单击后退按钮时关闭底部选择字段弹出窗口。 谁能告诉我如何实现这一点。我附上了选择字段弹出的屏幕截图以供更多参考。

【问题讨论】:

【参考方案1】:

没有看到任何代码,我猜你要么创建了自己的弹出窗口,要么在选择字段上将 usePicker 设置为 false。

为什么会这样?不会设置 usePicker: true,满足您的解决方案吗?

无论如何,请务必处理手头的问题,并根据您提供的信息,我会在您的弹出窗口(或 css 类)上设置一个 id,以便您在任何相关的路由功能中识别它如果它们可见则隐藏它们

var popupElement = findYourPopup(); //Ext.getCmp("popup") || ParentEl.query("cssclass") etc.
if (popupElement && !popupElement.isHidden()) 
    popupElement.hide();

希望对您有所帮助!

【讨论】:

感谢您的回复,抱歉回复晚了。正如你所建议的,我设置了 usePicker: true ,这似乎不起作用。采用另一种隐藏元素的方法会按预期隐藏叠加层,但会干扰先前的视图。我在 android 中遇到了这个问题,它在 ipad/iphone 中工作得非常好。 你能解释一下它是如何干扰之前的观点的吗?也许我可以提供进一步的帮助。还有一些代码可以帮助我们了解您是如何设置解决方案的。【参考方案2】:

你也可以像这样处理硬件后退按钮:

if (Ext.os.is('Android')) 
    document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false);

    function onBackKeyDown(eve)    
        eve.preventDefault();

        //do something
        alert('back button pressed');

    

【讨论】:

以上是关于当我们单击 android 设备中的后退按钮时,Sencha 触摸选择字段没有关闭的主要内容,如果未能解决你的问题,请参考以下文章

当我单击浏览器后退按钮或移动设备后退按钮时,保留选定的选项卡

单击浏览器的后退按钮时如何销毁会话

Android:为EditText打开键盘时处理后退按钮单击

当Webview方向更改然后按下后退按钮时,应用程序崩溃

如何从 Cordova 中的 android 设备后退按钮退出应用程序?

在android qtquick中单击后退按钮时应用程序退出