如何在应用程序中创建溢出菜单。但我不希望操作栏中的溢出菜单。但我希望它可以附加在应用程序的任何位置。我见过一个音乐应用程序做了类似的事情。我想将它包含在我的应用程序中。我附上相同的图像。
单击图像.. 下拉菜单将类似于操作栏中的溢出菜单。谁能告诉我该怎么做。任何帮助将不胜感激。
如何在应用程序中创建溢出菜单。但我不希望操作栏中的溢出菜单。但我希望它可以附加在应用程序的任何位置。我见过一个音乐应用程序做了类似的事情。我想将它包含在我的应用程序中。我附上相同的图像。
单击图像.. 下拉菜单将类似于操作栏中的溢出菜单。谁能告诉我该怎么做。任何帮助将不胜感激。
User117 评论很有帮助,对我有用。
您可以使用此类并从任何小部件创建溢出菜单。请参阅弹出菜单链接。
private void setOverflowMenu(View view)
{
popup = new PopupMenu(getActivity(), view.findViewById(R.id.image_overflow));
popup.getMenu().add(Menu.NONE, OPTION1, Menu.NONE, "My option 1");
popup.getMenu().add(Menu.NONE, OPTION2, Menu.NONE, "My option 2");
popup.getMenu().add(Menu.NONE, OPTION3, Menu.NONE, "My option 3");
popup.setOnMenuItemClickListener(this);
}
从片段调用,因此view
作为参数传递。如果从活动中调用,您可以直接调用此方法。view.findViewById(R.id.image_overflow)
是我需要附加菜单的图像。然后PopupMenu.OnMenuItemClickListener
在我的班级中实施,这迫使我实施以下方法
@Override
public boolean onMenuItemClick(MenuItem item)
{
switch (item.getItemId())
{
case OPTION1:
Toast.makeText(getActivity(), "OPTION1 clicked", Toast.LENGTH_LONG).show();
break;
case OPTION2:
Toast.makeText(getActivity(), "OPTION2 clicked", Toast.LENGTH_LONG).show();
break;
case OPTION3:
Toast.makeText(getActivity(), "OPTION3 clicked", Toast.LENGTH_LONG).show();
break;
}
return false;
}
那它。每件事都有效。并且不要忘记为小部件添加点击侦听器(在我的情况下为 imageview)。