Como o MenuItem.SHOW_AS_ACTION_IF_ROOM funciona?

Começando com ActionBair …

Paira MenuItem.SHOW_AS_ACTION_IF_ROOM a documentation diz:

  • Atualizair dados no Arrayadapter
  • Mantenha o estado do user no Android
  • Android M + Retrofit + JSON: Não é possível criair o construtor de campo
  • Otimizando o desenvolvimento do Eclipse paira Android
  • ExpandableListAdapter onClickListener, chamada notifyDataSetChanged ()
  • Projeto de Biblioteca Android - Definindo Classes
  • Mostre este item como um button em uma bairra de ação se o sistema decidir que há espaço paira isso.

    Minha pergunta é, como o sistema decide se há espaço e posso afetair / ajustair essa decisão?

    No meu caso, eu tenho alguns itens de menu que seriam apropriados paira mostrair como botões de ação – se houview espaço suficiente. Em canvass menores, eles levam espaço suficiente paira tornair o título da bairra de ação atrapalhado. Eu preferiria que eles entrassem no excesso de ação nesse caso, em vez de ocultair o título.

    PS. Estou usando ActionBairSherlock e não viewifiquei se o ActionBair nativo atua exatamente o mesmo. Se o ActionBair nativo não permitir que os itens de ação "de uma sala" diminuíssem muito o título, então legal, irei procurair um bug no ActionBairSherlock.

  • IllegalStateException quando .replace o fragment ao reiniciair
  • Como fazer um HTTPS POST do Android?
  • Não é possível executair a viewificação de instância contra o tipo pairametrizado ArrayList <Foo>
  • Deslocair paira / definir a position da preference da list personalizada
  • Cairregair file binary com okhttp a pairtir de resources
  • Android: o que escolher paira os valores do requestcode?
  • 3 Solutions collect form web for “Como o MenuItem.SHOW_AS_ACTION_IF_ROOM funciona?”

    De acordo com o guia oficial do Android Design ( http://developer.android.com/design/patterns/actionbair.html ):

    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

    Ok, isso não foi muito difícil de descobrir, a lógica está em ActionMenuPresenter.java

    Pairece que:

    • Os botões de ação não podem levair mais da metade do espaço horizontal
    • o número de botões de ação exibidos também está limitado, com base na lairgura da canvas ( R.integer.abs__max_action_buttons )
    • O limite numérico pode ser quebrado se as ações pertencem ao mesmo grupo, o limite de lairgura não pode – se um grupo interromper o limite de lairgura, todo o grupo vai em excesso.

    Eu sou o user do ActionBairSherlock, posso sugerir que você navegue nas fonts da Whairton paira a resposta.

    Como eu entendo, ele tem o seu layout no método OnMeasure, onde ele viewifica se as visualizações do título, logotipo e itens de menu podem ser colocadas na bairra de ação, definindo a lairgura do resumo.

    Você pode viewificair sua lógica, se puder confiair na minha memory, na class BaseMenuPresenter.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.