2013-07-01 3 views
1

Как создать меню переполнения в приложении. но я не хочу меню переполнения в панели действий. Но я хочу, чтобы он был прикреплен где угодно в приложении. Я видел одно музыкальное приложение, в котором что-то подобное сделано. Я хочу включить его в свое приложение. Я прикрепляю изображение к тому же.создание опции переполнения (не в панели действий)

enter image description here Щелчок по изображению .. в выпадающем меню будет похож на меню переполнения в панели действий. Может кто-нибудь сказать мне, как это сделать. Любая помощь будет оценена.

+1

Расширьте ['PopupMenu'] (https://developer.android.com/reference/android/widget/PopupMenu.html) класс. –

+0

Это сработало. Благодарю. :) – Android

ответ

0

User117 комментарий был полезным и работал для меня.

Вы можете использовать этот класс и создать меню переполнения любого виджета. Refer 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; 
} 

Что это. все работает. И не забудьте добавить кликер для виджета (изображение в моем случае).

Смежные вопросы