我是android的初学者,请尝试制作一个单击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();
}
});
答案 0 :(得分:0)
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,它是可自定义且灵活的。