创建溢出选项(不在操作栏中)

时间:2013-07-01 05:48:23

标签: android

如何在应用程序中创建溢出菜单。但我不想要动作栏中的溢出菜单。但我希望它可以附加在应用程序的任何位置。我见过一个音乐应用程序,其中有类似的东西。我想在我的应用程序中包含它。我正在附上图像。

enter image description here 单击图像..在下拉菜单中将类似于操作栏中的溢出菜单。任何人都可以告诉我该怎么做。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

User117评论很有帮助,对我有用。

您可以使用此类并在任何小部件中创建溢出菜单。 请参阅Pop up menu link

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