1

Я пытаюсь найти способ заставить показать трехточечное выпадающее меню в Android ICS. Я знаю, что он должен показывать, когда есть нехватка жесткой кнопки для настроек/меню.Можете ли вы отобразить меню с тремя точками в меню Android ICS?

Вот скриншот того, что я имею в виду:

http://cdn.gottabemobile.com/wp-content/uploads/2011/12/ICS-Screen05.jpg

Спасибо!

+1

[Что вы пробовали?] (http://whathaveyoutried.com/) –

+0

Мы просто собирались положить всплывающее меню в том же стиле, но это было бы лишним, если бы меню переполнения появилось из-за отсутствия ключа меню аппаратного обеспечения , – agchou

ответ

1

Вы можете заставить элементы отображаться в меню переполнения с помощью android:showAsAction="never" в вашем меню XML. Однако, если ваше устройство имеет аппаратное меню, то переполнение не будет отображаться. Вы должны были бы сделать некоторые fakery с элементом, который вы нажали, и опустили пользовательское контекстное меню или что-то в этом роде.

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

+0

Я согласен с вами, мы решили просто придерживаться конвенции. – agchou

+0

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

1

Итак, получается, что это довольно просто, я недавно реализовал в своем приложении.

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

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/empty" 
     android:orderInCategory="101" 
     android:showAsAction="always" 
     android:icon="@drawable/ic_action_overflow"> 

     <menu>   

      <item 
       android:id="@+id/action_settings" 
       android:orderInCategory="96" 
       android:showAsAction="never" 
       android:title="@string/menu_settings" 
       android:icon="@drawable/ic_action_settings"/> 

      <item 
       android:id="@+id/action_share" 
       android:orderInCategory="97" 
       android:showAsAction="never" 
       android:title="@string/menu_share" 
       android:icon="@drawable/ic_action_share"/> 

      <item 
       android:id="@+id/action_rate" 
       android:orderInCategory="98" 
       android:showAsAction="never" 
       android:title="@string/menu_rate" 
       android:icon="@drawable/ic_action_important"/> 

      <item 
       android:id="@+id/action_feedback" 
       android:orderInCategory="99" 
       android:showAsAction="never" 
       android:title="@string/menu_feedback" 
       android:icon="@drawable/ic_action_edit"/> 

      </menu>   
     </item> 
</menu> 

Теперь редактировать основной файл активности следующим образом:

package com.example.test; 
//all your import statements go here 

Menu mainMenu=null; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); } 

@Override 
public boolean onCreateOptionsMenu(Menu menu) {  
// Inflate the menu; this adds items to the action bar if it is present. 
getMenuInflater().inflate(R.menu.main, menu); 
mainMenu=menu; 
return true; } 


//Menu press should open 3 dot menu 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode==KeyEvent.KEYCODE_MENU) { 
     mainMenu.performIdentifierAction(R.id.empty, 0); 
     return true; } 
    return super.onKeyDown(keyCode, event); } 

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

  • Нет связанных вопросов^_^