我有一个ImageView可以在单击时打开PopupMenu。如何设置PopupMenu在特定位置显示? PopupMenu将用作下拉菜单,我希望PopupMenu的右上角是用户单击的位置。请参见下面的图片以获取插图:
我目前所拥有的:
我想要什么:
相关代码:
mNavViewDropDown= navViewHeader.findViewById(R.id.navview_header_expand);
mNavViewDropDown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PopupMenu popup = new PopupMenu(getContext(), mNavViewDropDown);
//Inflating the Popup using xml file
popup.getMenuInflater()
.inflate(R.menu.menu_navview_header_, popup.getMenu());
//registering popup with OnMenuItemClickListener
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(
getContext(),
"You Clicked : " + item.getTitle(),
Toast.LENGTH_SHORT
).show();
return true;
}
});
popup.show(); //showing popup menu
}
});
答案 0 :(得分:0)
您可以设置弹出菜单的重力。
ext_modules
话虽这么说,您正在做的更多的是hack。无法保证它将显示在左侧。您应该使用expandableListView或制作自己的可扩展视图。试试这个库:https://github.com/AAkira/ExpandableLayout。它提供了一种显示可扩展视图的简便方法。
答案 1 :(得分:0)
因此,我意识到已经有了更好的工具来代替:
https://developer.android.com/guide/topics/ui/controls/spinner#java