gpt4 book ai didi

java - 在 PopupWindow 中打开 PopupWindow

转载 作者:行者123 更新时间:2023-11-30 02:00:57 26 4
gpt4 key购买 nike

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

打开第一个 PopupWindow 效果很好。当我单击其中的按钮打开第二个时,应用程序崩溃了。我怎样才能使第二个 PopupWindow 工作?

感谢您的帮助。

我试过这样的:

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);


}
}
});
}

最佳答案

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

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

它实际上工作得很好,popupView 会根据其拥有的内容适本地调整自身的大小,并带有流畅的动画。

关于java - 在 PopupWindow 中打开 PopupWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31492315/

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