0

Я использую поддержку браузера поддержки поддержки Android для поддержки 2.2 и выше.Как программно открыть меню переполнения панели действий библиотеки поддержки Android?

Я могу показать меню, и одна из моих кнопок - кнопка переполнения (3 точки).

Когда он щелкнут, я хочу показать меню переполнения.

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      super.onBackPressed(); 
      return true; 
     case R.id.action_overflow: 
      openOptionsMenu(); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

У меня есть это, но он не работает.

Кто-нибудь знает, что случилось?

Спасибо.

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:sord.ids_connect="http://schemas.android.com/apk/res-auto"> 

    <item 
     android:id="@+id/action_overflow" 
     android:icon="@drawable/ic_action_secure" 
     android:title="@string/action_overflow" 
     sord.ids_connect:showAsAction="ifRoom" /> 

</menu> 
+0

Вы могли бы поделиться с вами menu.xml –

+0

ОК, я разместил его. – omega

ответ

1

Ну основная идея overflow меню состоит в том, варианты, которые не являются важными собраны и помещены в него по умолчанию. Вам не нужно создавать меню переполнения самостоятельно. Если вы поместите свой пункт showAsAction="never", он будет автоматически помещен в меню переполнения.

См., Например,

<item 
    android:id="@+id/action_settings" 
    android:showAsAction="never" 
    android:title="@string/action_settings"/> 
<item 
    android:id="@+id/action_refresh" 
    android:showAsAction="never" 
    android:title="@string/action_refresh"/> 
<item 
    android:id="@+id/action_about" 
    android:showAsAction="never" 
    android:title="@string/action_about"/> 

все из них, потому что они имеют showAsAction="never" будут размещены на меню переполнения автоматически.

И в своем заявлении переключатель можно просто объявить:

switch (item.getItemId()) { 
    case android.R.id.home: 
     super.onBackPressed(); 
     return true; 
    case R.id.action_settings: 
     //something 
     break; 
case R.id.action_refresh: 
    //something 
    break; 
... 
} 

и так далее. Но если есть кнопка меню аппаратного обеспечения, то overflow не появится. Для этого вы можете обратиться к following.

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