首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PopupWindow中打开PopupWindow

在PopupWindow中打开PopupWindow
EN

Stack Overflow用户
提问于 2015-07-18 22:45:15
回答 1查看 56关注 0票数 1

我想在另一个PopUpWindow中打开一个PopUpWindow。我的MainActivity里有一个ImageButtons。当我点击它时,会出现一个PopUpWindow。我使用它作为我的应用程序中的一种子菜单。在我的第一个PopupWindow中是另一个ImageButton。如果我点击它,应该会出现第二个PopupWindow,并覆盖第一个。

打开第一个PopupWindow就可以了。当我单击其中的按钮打开第二个按钮时,应用程序崩溃。如何才能使第二个PopupWindow正常工作?

谢谢你的帮助。

我像这样试了一下:

代码语言:javascript
复制
final ImageButton btnOpenPopup = (ImageButton) findViewById(R.id.button_name);
        btnOpenPopup.setOnClickListener(new Button.OnClickListener() {

            @Override
            public void onClick(View v) {

                LayoutInflater layoutInflater
                        = (LayoutInflater) getBaseContext()
                        .getSystemService(LAYOUT_INFLATER_SERVICE);

                View popupView = layoutInflater.inflate(R.layout.popup_fertig, null);

                final PopupWindow popupWindow = new PopupWindow(
                        popupView,
                        LayoutParams.WRAP_CONTENT,
                        LayoutParams.WRAP_CONTENT);

           popupWindow.showAtLocation(btnOpenPopup, Gravity.TOP | Gravity.RIGHT, 0, 0);



           Button btn_2 = (Button) popupView.findViewById(R.id.button_2);
           btn_2.setOnClickListener(new Button.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                     LayoutInflater layoutInflater_2
                        = (LayoutInflater) getBaseContext()
                        .getSystemService(LAYOUT_INFLATER_SERVICE);

                View popupView_2 = layoutInflater.inflate(R.layout.popup_2, null);

                final PopupWindow popupWindow_2 = new PopupWindow(
                        popupView_2,
                        LayoutParams.WRAP_CONTENT,
                        LayoutParams.WRAP_CONTENT);

           popupWindow_2.showAtLocation(btn_2, Gravity.TOP | Gravity.RIGHT, 0, 0);


               }
                }
            });
}
EN

回答 1

Stack Overflow用户

发布于 2015-09-25 17:12:03

我也在尝试做你正在做的事情,但没有成功,但是我确实找到了你想要做的事情的变通方法。

在popupView xml布局中,必须创建一个framelayout作为父布局,然后将popupView和popupView 2布局都放入父布局中。然后,当在popupView中按下按钮时,将打开和关闭这两个布局中每个布局的可见性。

它实际上工作得很好,popupView根据它持有的内容适当地调整了自己的大小,并带有流畅的动画。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31492315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档