【问题标题】:Android PopupWindow prevent dissmis on anchor clickAndroid PopupWindow 防止在锚点点击时出现dissmis
【发布时间】:2013-11-06 20:59:10
【问题描述】:

我有一个 popupWindow,它在单击按钮时显示 AsDropDown,并且此 popupWindow 具有 setOutsideTouchable(true),我想在单击按钮时切换显示弹出窗口,但也想在单击弹出窗口外部时关闭。问题是在单击按钮之前调用外部触摸,然后我的弹出窗口是隐藏并显示。 有没有办法做到这一点?

已修复!!!

我发现问题是我的弹出窗口没有聚焦,我必须打电话

popupWindow.setFocusable(true);

修复它。

【问题讨论】:

    标签: android toggle popupwindow dismiss


    【解决方案1】:

    如果我理解正确,

    // Pop up Window showing
    
        LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
                .getSystemService(LAYOUT_INFLATER_SERVICE);
        popupView = layoutInflater.inflate(R.layout.menu_popup, null);
        popupWindow = new PopupWindow(popupView, LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
        popupWindow.setOutsideTouchable(true);
    
     // Add setBackgroundDrawable to the pop up window to close the dialog :
    
            popupWindow.setBackgroundDrawable(getResources().getDrawable(
                android.R.color.transparent));
        popupWindow.setTouchable(true);
    

    使用以下检查,您可以根据需要显示弹出窗口

    findViewById(R.id.topMenu).setOnClickListener(
                new View.OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
    
                            popupWindow
                                    .showAsDropDown(findViewById(R.id.topMenu));
    
                });
    

    我已经检查过了。它工作正常。

    【讨论】:

    • 是的,我的代码类似,但 setOutsideTouchable(true) 不适用于 onClick isShowing() 每次都是 false,因为在触发 onClick 之前弹出窗口已关闭。
    • 你到底想做什么?当用户在外面触摸时,您想关闭弹出窗口吗?
    • 是的,我想在触摸外部时关闭,但也有切换锚。像this 这样的东西,当您单击锚点以关闭和打开窗口时,当您触摸外部时也会关闭。
    猜你喜欢
    • 2015-10-17
    • 1970-01-01
    • 2018-01-15
    • 2019-06-04
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    相关资源
    最近更新 更多