2012-05-15 5 views
5

В моем приложении я создал свой собственный Actionbar, и он работает очень хорошо.Пользовательское меню переполнения Android (без панели действий и без меню)

Я бы хотел использовать поведение кнопок переполнения на ICS-устройствах без кнопки меню.

Есть ли способ реализовать пользовательскую OverflowButton в ICS, которая отделена от панели действий?

Спасибо!

+0

Для уточнения: Я хочу, чтобы избавиться от черной полосы на дне с тремя точками, и istead осуществить свою собственную версию в моей пользовательской ActionBar. – DagW

+0

Вы посмотрели http://developer.android.com/resources/samples/ActionBarCompat/index.html? – techiServices

ответ

19

userSeven7s в основном имеет его с ListPopupWindow, но еще лучше подходит в данном случае является PopupMenu, что позволяет надуть стандартный menu.xml. Вы можете разместить свой собственный View или Button в верхнем правом углу, а в обработчике onClick создать и показать PopupMenu.

Пример можно найти в ApiDemos> Views> Popup Menu. В частности PopupMenu1.java:

public void onPopupButtonClick(View button) { 
    PopupMenu popup = new PopupMenu(this, button); 
    popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu()); 

    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
     public boolean onMenuItemClick(MenuItem item) { 
      Toast.makeText(PopupMenu1.this, "Clicked popup menu item " + item.getTitle(), 
       Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
    }); 

    popup.show(); 
} 
+0

Отлично! Доступно ли это с пакетом совместимости? – DagW

+1

Нет, и я предполагаю, что было бы довольно сложно получить обратно. Но я бы рекомендовал просто использовать существующую кнопку меню на устройствах, которые у нее есть (все Android 2.x), и просто используя всплывающее меню на устройствах без кнопки меню, вы можете обнаружить это с помощью http://developer.android. com/reference/android/view/ViewConfiguration.html # hasPermanentMenuKey(). –

+0

, но с помощью всплывающего меню вы не можете добавить значок –

0

Вы посмотрели на ActionBar Sherlock? ABS обеспечивает поддержку панели действий для всех устройств, работающих под управлением Android 2.1 и выше. Пример ActionBarCompat очень ограничен и не поддерживает переполнение меню на старых устройствах. Обязательно используйте тему Theme.Sherlock.ForceOverflow, чтобы включить переполнение.

http://actionbarsherlock.com/

Вы также можете изменить библиотеку QuickAction делать то, что вы хотите.

https://github.com/lorensiuswlt/NewQuickAction

0

Вы можете скользить/прокручивание панели действий, чтобы позволить доступ к большему количеству вариантов. Поместите панель действий в HorizontalScrollView.

Вы также можете взглянуть на PopupWindow класса here и ListPopupWindow документации here.

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