我是一个初学者在安卓,并试图使一个应用程序,弹出一个菜单,当imageView被点击。实际上,它可以工作,但弹出在右侧,我想要在中心。所以,我在网上搜索了一下,偶然发现了ListPopupWindow和PopupWindow类。根据我的知识/能力,我尝试了这个课程的各种方法,但我不能做到这一点。请指导我这样做。以下是我的代码
imageview setonclickListener(new View.onclickListener() {
@Override public void onClick(View view){
PopupMenu popup = new PopupMenu(Info4 Activity.this, imageview1);
Menu menu = popup.getMenu();
for (int i = 0; i < (int) (subjects.size()); i++) {
val = subjects.get((int) (i));
menu.add(val);
}
popup.show();
}
});

发布于 2018-09-09 08:48:57
PopupMenu
如果有空间,则弹出窗口将出现在锚点的下方,如果没有空间,则弹出窗口将出现在其上方。在你的情况下,锚点是imageView,所以你不能在屏幕上居中弹出窗口。
PopupWindow
试试这个:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.showAtLocation(v, Gravity.CENTER, 0, 0);// here v is any View only needed for WindowToken
}
});其他更好的方式:
也许你可以考虑使用DialogFragment,它是可定制的和灵活的。
https://stackoverflow.com/questions/52238298
复制相似问题