Java 如何设置一个弹出窗口在另一个弹出窗口上显示

Java 如何设置一个弹出窗口在另一个弹出窗口上显示,java,android,popupwindow,Java,Android,Popupwindow,我的应用程序中有两个弹出窗口,它们相交。现在我想管理另一个弹出窗口上显示的弹出窗口,它表示Z轴。有什么想法吗? 你可以看到下面的图片 及 有第一个弹出窗口,单击此弹出窗口上的文本视图,然后显示第二个弹出窗口 PopupWindow mPop,mPop2; /** * show first popupWindow */ private void popupWindow(final View vi) { View view = LayoutIn

我的应用程序中有两个弹出窗口,它们相交。现在我想管理另一个弹出窗口上显示的弹出窗口,它表示Z轴。有什么想法吗? 你可以看到下面的图片


有第一个弹出窗口,单击此弹出窗口上的文本视图,然后显示第二个弹出窗口

PopupWindow mPop,mPop2;

    /**
     * show first popupWindow
     */
    private void popupWindow(final View vi) {
        View view = LayoutInflater.from(this).inflate(R.layout.pop, null);
        TextView tv = (TextView) view.findViewById(R.id.tv1);
        //click show second one
        tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                popupWindow2(vi);
            }
        });
        if (null == mPop) {
            mPop = new PopupWindow(view);
        }
        mPop.setHeight(294);
        mPop.setWidth(200);
        mPop.setFocusable(true);
        mPop.setOutsideTouchable(true);
        mPop.setBackgroundDrawable(new ColorDrawable(0));
        mPop.showAtLocation(vi, Gravity.CENTER | Gravity.CENTER, 22,
                22);
        mPop.update();

    }

/**
    * show second popupWindow
    */
    private void popupWindow2(View v) {
        View view = LayoutInflater.from(this).inflate(R.layout.pop2, null);
        if (null == mPop2) {
            mPop2 = new PopupWindow(view);
        }
        mPop2.setHeight(294);
        mPop2.setWidth(200);
        mPop2.setFocusable(true);
        mPop2.setOutsideTouchable(true);
        mPop2.setBackgroundDrawable(new ColorDrawable(0));
        mPop2.showAtLocation(v, Gravity.CENTER | Gravity.CENTER, 42,
                42);
        mPop2.update();

    }
然后解决这个问题。试试看。

据我所知,最新的弹出窗口将始终覆盖旧的弹出窗口
PopupWindow
确实有一个
setElevation
方法。但它是在API 21中添加的。我使用了setElevation(),但它不起作用。在新弹出窗口上调用
show()
后,您可以尝试在上一个弹出窗口上调用
show()
。为什么要在弹出窗口上显示弹出窗口?您可以指定场景吗?如果我在新弹出窗口的call show()之后在上一个弹出窗口中调用show(),我应该先关闭它,然后调用show(),但我会看到它先关闭,然后再显示。谢谢你的回答,这是popupwindow的正常顺序,但是如果我想让第一个超过第二个,我应该回忆一下第一个的show()吗?我不想这样做,我只想知道是否有任何想法来处理一个popupwindow节目而不是另一个。