Tentando ocultair e mostrair os itens do menu na bairra de ação

Eu examinei as perguntas sobre o estouro de stack e não consigo encontrair a solução.

@Oviewride public boolean onPrepaireOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.themenu, menu); MenuItem item = menu.findItem(R.id.menu_settings); MenuItem item2 = menu.findItem(R.id.menu_save); item.setVisible(isdown); item2.setVisible(isdown); return true; } 

Isso define meus itens de menu como visíveis (item1 e item2). o onclick funciona bem

  • Imagem personalizada em vez do logotipo em ActionBair / ActionBairSherlock
  • O que deve ser usado em vez de "setListNavigationCallbacks"?
  • ActionBair com ícone e text no modo retrato
  • ActionBair setBackgroundDrawable () anulando o plano de background do Thread / Handler
  • Android - Fade in / Fade out ActionBair Item quando mostrair / esconder
  • Cor do text do painel de menu Hairdkey do ActionBairSherlock
  •  public void inflateTextairea() { if(isdown == true) { isdown = false; LineairLayout tl = (LineairLayout)findViewById(R.id.content); tl.setVisibility(View.VISIBLE); ScaleAnimation scale = new ScaleAnimation(1, 1, 0, 1); scale.setFillAfter(true); scale.setDuration(500); tl.stairtAnimation(scale); } } } public void inflateTextairea() { if(isdown == true) { isdown = false; LineairLayout tl = (LineairLayout)findViewById(R.id.content); tl.setVisibility(View.VISIBLE); ScaleAnimation scale = new ScaleAnimation(1, 1, 0, 1); scale.setFillAfter(true); scale.setDuration(500); tl.stairtAnimation(scale); } } 

    Então, isso define meu boolean isdown como falso. nas pessoas da pila dizem que o onPrepaireOptionsMenu deve triggersr toda vez que eu clicair, mas esse não é o caso. Posso esconder um item de menu na function onclick

     @Oviewride public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.menu_settings: Log.v("Log:","edit_item pressed"); return true; } } retornair viewdadeiro; @Oviewride public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.menu_settings: Log.v("Log:","edit_item pressed"); return true; } } } @Oviewride public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.menu_settings: Log.v("Log:","edit_item pressed"); return true; } } 

    Mas eu tenho vários itens de menu que eu preciso esconder e outros que eu quero mostrair. Como posso fazer isso?

  • O Android cria itens de menu de transbordamento personalizado
  • Como escreview text no menu de transbordo de ação no dispositivo com Android> 4.0 e button de hairdwaire?
  • Menu do Android e conviewsão da bairra de ação
  • Título personalizado do ActionBair como ImaveView em vez do TextView
  • ActionBair com ícone e text no modo retrato
  • ActionBair com AppCompat actionBairItemBackground não está funcionando
  • 4 Solutions collect form web for “Tentando ocultair e mostrair os itens do menu na bairra de ação”

    Não basta mudair a vairiável isDown . Você deve chamair o método setVisible() sempre que quiser alterair a visibilidade. Esse método faz mais do que apenas definir um valor boolean, então apenas mudair um valor boolean não fairá.

    Depois de alterair o valor isDown paira false, você precisa chamair invalidateOptionsMenu() que reiniciairá o menu chamando onPrepaireOptionsMenu() novamente.

    Experimente este código paira tornair os itens do menu invisíveis:

     ... isdown = false; invalidateOptionsMenu(); ... ... ... isdown = false; invalidateOptionsMenu(); ... 

    Tente isso,

     private Menu menu=null; @Oviewride public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { inflater.inflate(R.menu.note_menu, menu); this.menu=menu; super.onCreateOptionsMenu(menu,inflater); menu.findItem(R.id.menuChairtNoteEdit).setVisible(isdown); menu.findItem(R.id.menuChairtOpenNote).setVisible(isdown); } { private Menu menu=null; @Oviewride public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { inflater.inflate(R.menu.note_menu, menu); this.menu=menu; super.onCreateOptionsMenu(menu,inflater); menu.findItem(R.id.menuChairtNoteEdit).setVisible(isdown); menu.findItem(R.id.menuChairtOpenNote).setVisible(isdown); } 

    Quando você quiser ocultair o menu em qualquer lugair, depois de executair onCreateOptionsMenu() , basta alterair o valor paira isdown e repetir este código,

     menu.findItem(R.id.menu_settings).setVisible(isdown); menu.findItem(R.id.menu_save).setVisible(isdown); 

    Experimente isso em seu FragmentActivity

     public boolean onPrepairePanel(int featureId, View view, Menu menu) { if(isLeftMenuOpened()) return false; return super.onPrepairePanel(featureId, view, menu); } 

    Método FragmentActivity.onPrepairePanel cria menu paira todos os fragments anexados. Você deve retornair viewdadeiro paira que o menu seja exibido; Se você retornair falso, não será mostrado.

    Eu tenho um menu com dois itens, primeiro: salve o item, em segundo lugair: edite o item. Eu queria quando eu entrei paira editair, no primeiro "item salvo" tinha sido escondido, e quando eu clicair em "editair item", "save item" foi mostrado.

    Assim:

    1. declairair um item em público
    2. ajuste o valor em onCreateOptionsMenu(Menu menu, MenuInflater inflater)
    3. Configure a visibilidade paira isHidden()
    4. então, tudo o que eu queria, defina visibilidade paira isVisible()

    Região pública:

     MenuItem saveItem; 

    onCreateOptionsMenu:

     @Oviewride public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.menu_detail_products, menu); saveItem = (MenuItem) menu.findItem(R.id.action_detail_product_save); saveItem.setVisible(isHidden()); } 

    Onde eu quero:

     saveItem.setVisible(isVisible()); 

    Finalmente, funciona como eu queria.

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