Панель действий Android, не отображающая переполнение

У меня есть панель действий в моем приложении с 3 элементами.

Из-за проблем с пространством могут отображаться только 2, поэтому я ожидаю, что первый будет отображаться, а остальные будут отображаться в переполнении. Однако на практике показаны только первые 2 элемента, и невозможно обнаружить переполнение.

Вот соответствующий код: list_menu.xml

      

Activity.java

 public boolean onCreateOptionsMenu(Menu menu) { MenuInflater mi = getMenuInflater(); mi.inflate(R.menu.list_menu, menu); return true; } 

Если вы хотите показать три точки, независимо от кнопки меню устройства! то вы можете вызвать этот метод в своем classе приложения ‘onCreate method-

 private void makeActionOverflowMenuShown() { //devices with hardware menu button (eg Samsung Note) don't show action overflow menu try { ViewConfiguration config = ViewConfiguration.get(this); Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); if (menuKeyField != null) { menuKeyField.setAccessible(true); menuKeyField.setBoolean(config, false); } } catch (Exception e) { Log.d(TAG, e.getLocalizedMessage()); } } 

Панель действий

Рез / меню / menu.xml

                   

MainActivity.java

 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return super.onCreateOptionsMenu(menu); } } 

Загрузите набор значков панели действий

Я понимаю, что это не переполнение меню, но похоже. Хорошо, это просто, но было трудно понять.

Сначала вам нужен элемент меню, который вы хотите использовать в качестве переполнения. пример

   

После того, как у вас есть элемент, добавьте подменю, содержащее ваши элементы, которые вы хотите в меню переполнения. Пример:

      

По щелчку это раздувает другие предметы внутри. Мое приложение использует ActionBarSherlock 4.0, поэтому прежде чем это будет работать для вас, вам нужно получить доступ к «SplitActionBar». (Будет по-прежнему работать по умолчанию для Android android)

Вот как это сделать: в вашем файле AndroidManifest.xml вам нужно добавить этот код под действие, в котором вы нуждаетесь в меню переполнения.

 android:uiOptions="splitActionBarWhenNarrow" 

ПРИМЕЧАНИЕ. Ваш элемент, который раздувает ваше меню переполнения, ДОЛЖЕН showAsAction="always"

Vwola! у вас есть меню переполнения! Надеюсь, я помог тебе. 🙂

На устройствах с аппаратными кнопками меню (Galaxy S3, упрямый, как Samsung …) меню переполнения ведет себя как «традиционное» меню, используя кнопку меню аппаратного обеспечения.

Когда вы говорите «переполнение» меню, вы имеете в виду три точки, которые появляются в конце, чтобы указать, что есть больше предметов …. или вы имеете в виду раздельную панель действий, которая отображается внизу для элементов переполнения?

Если вы имеете в виду панель действий split, вы должны добавить это в файл манифеста активности

 android:uiOptions="splitActionBarWhenNarrow" 

По умолчанию меню переполнения трех точек должно происходить автоматически, поэтому трудно сказать, в чем проблема, из приведенной выше информации.

Чтобы всегда показывать действие (три точки) на actionbarcompat:
в файле меню, например:
main.xml

     

и в файле активности:

 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } 

Это отлично работает для меня.
Протестировано на Google Nexus S, Samsung S3.

Похоже, что на устройствах с кнопкой меню меню переполнения не отображается в ActionBar. Также у нас нет способа узнать, есть ли у устройства аппаратное меню до уровня API 14 (4.0+).

Это решение добавляет кнопку переполнения в android.support.v7.app.ActionBar который открывает меню стандартных опций только для предварительного сотового (<3,0), в противном случае он остается в системе. В любом случае вы можете выбирать между always или ifRoom для всех действий.

Получите значок переполнения из пакета значков панели действий .

Добавьте меню (некоторые части, не относящиеся к ним, как названия, заказы и т. Д.)

      

Удалите наше действие переполнения на 3.0+

 @Override public boolean onPrepareOptionsMenu(Menu menu) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { menu.removeItem(R.id.action_overflow); } return super.onPrepareOptionsMenu(menu); } 

Наконец вызовите Activity.openOptionsMenu() из действия переполнения.

Э … нет. Вы не можете вызывать openOptionsMenu() из кнопки меню … но если вы используете AndroidAnnotations, вы можете легко:

 @OptionsItem void action_overflow() { openOptionsMenuDeferred(); } @UiThread void openOptionsMenuDeferred() { openOptionsMenu(); } 

Если нет, вы должны сделать что-то вроде этого, я полагаю

 @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == id.action_overflow) { openOptionsMenuDeferred(); return true; } } private Handler handler = new Handler(Looper.getMainLooper()); public void openOptionsMenuDeferred() { handler.post(new Runnable() { @Override public void run() { openOptionsMenu(); } } ); } 

Попробуйте изменить тему приложения с Theme.AppCompat.Light.DarkActionBar на Theme.AppCompat.Light

Поместите xmlns:your_app_name="http://schemas.android.com/apk/res-auto" внутри тега меню, а вместо этого android:showAsAction="always" use your_app_name:showAsAction="always"

например,

  

  • Как принудительно использовать меню переполнения на устройствах с помощью кнопки меню
  • Не удалось загрузить AppCompat ActionBar с неизвестной ошибкой в ​​студии Android.
  • Как скрыть значок действия share (который используется больше всего) рядом с поставщиком акций?
  • Android - кнопка переключения ActionBar Back на навигационную кнопку
  • Как настроить кнопку «Назад» на ActionBar
  • Изменение значка меню «Переполнение Android» программно
  • Эта активность уже имеет панель действий, предоставляемую декором windows
  • Меню переполнения команды в ActionBarSherlock
  • Переключение между изображениями Android Navigation Drawer и Up caret при использовании fragmentов
  • getActionBar возвращает null
  • Как отключить панель действий навсегда
  • Давайте будем гением компьютера.