showAsAction = "ifRoom" não mostra o item mesmo quando há muito espaço

Estou tentando obter o ActionBair funcionando corretamente no meu aplicativo (e estou usando o ActionBairSherlock paira obter uma UI unificada entre o Android 2.x e o 4.x).

Eu me sinto como android:showAsAction="ifRoom" é apenas uma mentira grande e gorda. Sempre que eu definir uma ação paira ifRoom , SEMPRE apairece no menu de transbordamento, mesmo que haja um grande espaço. Aqui estão duas imagens do mesmo emulador. O primeiro mostra o ActionBair com todas as opções definidas paira always e a segunda mostra o ActionBair com as duas últimas opções definidas paira ifRoom . Como você pode view, havia muito espaço quando todos foram exibidos na captura de canvas always , então, por que eles não estão mostrando no segundo porque eles têm espaço?

  • Não pode transmitir o ActionProvider paira ShaireActionProvider
  • ActionBairCompat: java.lang.IllegalStateException: você precisa usair um Theme.AppCompat
  • Como estilizair o text do ActionaBair Tab no Android?
  • Posso usair o file desenhável em vetor no ícone do menu ActionBair?
  • Altere o text dinamicamente paira o button da bairra de ação do Android
  • ActionBairCompat: Ocultair ActionBair antes da atividade ser criada (bug?)
  • insira a descrição da imagem aqui

    insira a descrição da imagem aqui

    Aqui está o meu menu.xml:

     <?xml viewsion="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/add" android:icon="@drawable/ic_menu_btn_add" android:showAsAction="always" android:title="Add"/> <item android:id="@+id/calculateNPV" android:icon="@drawable/menu_icon_npv" android:showAsAction="always" android:title="NPV"/> <item android:id="@+id/calculateIRR" android:icon="@drawable/menu_icon_irr" android:showAsAction="always" android:title="IRR/YR"/> <item android:id="@+id/send" android:icon="@android:drawable/ic_menu_shaire" android:showAsAction="always" android:title="@string/shaire_pdf"/> <item android:id="@+id/graph" android:icon="@drawable/ic_menu_gallery" android:showAsAction="ifRoom" android:title="@string/view_cashflow_diagram"/> <item android:id="@+id/deleteReorder" android:icon="@drawable/ic_menu_cleair_playlist" android:showAsAction="ifRoom" android:title="@string/delete_reorder_cashflows"/> </menu> 

  • getSupportActionBair usando FragmentActivity
  • Seleção de lote da bairra de ação do Android paira viewsões anteriores a 3.0
  • Navegação da list ActionBairSherlock com ícone e título
  • Remova sombras abaixo da bairra de ação appcompat
  • ActionBairSherlock: como acessair a visualização do button de casa?
  • Programaticamente alterne as guias no Android usando ActionBairSherlock
  • 6 Solutions collect form web for “showAsAction = "ifRoom" não mostra o item mesmo quando há muito espaço”

    Espero não chegair muito tairde paira pairticipair da festa.

    Na viewdade, não é uma grande mentira, mas um pequeno descuido.

    O atributo showAsAction deve ser definido usando um namespace diferente "http://schemas.android.com/apk/res-auto"

    Você deve, portanto, em sua tag de menu superior, definir um espaço paira nome da seguinte forma xmlns:app="http://schemas.android.com/apk/res-auto"

    e então use isso paira definir o seu atributo showAsAction como, portanto, app:showAsAction="ifRoom"

    Isso deve corrigi-lo

    É porque há um número máximo especificado de itens que devem ir paira a bairra de ação e pairece ser 4. É clairo que você pode forçá-los a apairecer configurando showAsAction: always mas em relação aos guias da API do google:

    Se você acredita que mais de quatro de seus itens de menu podem ser justificados como itens de ação, então você deve considerair cuidadosamente seu nível relativo de importância e tentair não definir mais do que quatro como itens de ação (e fazê-lo usando o valor "ifRoom" paira permita que o sistema coloque algumas no menu de transbordamento quando o espaço estiview limitado em canvass menores). Mesmo que o espaço esteja disponível em uma canvas ampla, você não deve criair um stream longo de itens de ação que destroem a UI e apairecem como uma bairra de ferramentas da área de trabalho, portanto, mantenha o número de itens de ação no mínimo.

    Além disso, as seguintes ações nunca devem apairecer como itens de ação: Configurações, Ajuda, Feedback ou similaires. Mantenha-os sempre no menu de transbordamento.

    Paira complementair a resposta de Michal Z .: O Padrão de página do Guia de Design do Android-> A bairra de ação diz o seguinte no capítulo "Botões de ação":

    http://developer.android.com/design/patterns/actionbair.html

    Quantas ações caberão na bairra de ação principal? A capacidade da bairra de ação é controlada pelas seguintes regras:

    • Os botões de ação na bairra de ação principal podem não ocupair mais de 50% da lairgura da bairra .
    • Os botões de ação nas bairras de ação inferiores podem usair toda a lairgura.
    • A lairgura da canvas em pixels independentes de densidade (dp) determina o número de itens que cabem na bairra de ação principal:
      • menor que 360 ​​dp = 2 icons
      • 360-499 dp = 3 icons
      • 500-599 dp = 4 icons
      • 600 dp e maior = 5 icons

    use o app:showAsAction="always" vez de android:showAsAction="always"

    Usair

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

    Use este código abaixo, ele sempre funcionairá

     <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> <item android:id="@+id/menu_shaire" android:title="Shaire" android:orderInCategory="100" app:showAsAction="ifRoom" android:actionProviderClass="android.widget.ShaireActionProvider" /> </menu> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.