2013-10-29 14 views
8

Sto utilizzando la barra di azione con barra di ricerca troppo, e ho bisogno di usare l'ico ActionBar come un pulsante Indietro:Come posso eliminare il Cassetto di navigazione per usare il pulsante Back-home-icon?

enter image description here

Ma io sto usando il cassetto di navigazione troppo ... Come può Ignoro/nascondi/disabilita il menu Cassetto di navigazione per usare il pulsante Indietro?

Il mio codice ActionBar:

@Override 
public boolean onCreateOptionsMenu(Menu menu){ 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main, menu); 

    this.getSupportActionBar().setDisplayShowCustomEnabled(true); 
    this.getSupportActionBar().setDisplayShowTitleEnabled(false); 

    this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    this.getSupportActionBar().setHomeButtonEnabled(true); 

    LayoutInflater inflator = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View v; 

    if(!searchView){ 
     v = inflator.inflate(R.layout.action_textview, null); 
     ((TextView) v.findViewById(R.id.titleText)).setText(actionTitle); 
     menu.getItem(0).setVisible(true); 
     menu.getItem(2).setVisible(true); 
     mainMenu = menu; 

    }else{ 
     v = inflator.inflate(R.layout.action_searchview, null); 
     actionSearch = (EditText) v.findViewById(R.id.searchText); 
     actionSearch.setOnEditorActionListener(new OnEditorActionListener() { 
      @Override 
      public boolean onEditorAction(TextView view, int actionId, KeyEvent event) { 
       int result = actionId & EditorInfo.IME_MASK_ACTION; 
       switch(result) { 
       case EditorInfo.IME_ACTION_DONE: 
       case EditorInfo.IME_ACTION_NEXT: 
       case EditorInfo.IME_ACTION_GO: 
       case 0: 
        ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(actionSearch.getWindowToken(), 0); 
        String temp = actionSearch.getText().toString(); 
        searchFor(temp); 
        break; 
       } 
       return true; 
      } 
     }); 
     actionSearch.requestFocus(); 
     menu.getItem(0).setVisible(false); 
     menu.getItem(2).setVisible(false); 
    } 
    this.getSupportActionBar().setCustomView(v);   

    return super.onCreateOptionsMenu(menu); 
} 

Codice aiuto:

  1. mio Titolo sua una visualizzazione personalizzata con solo un TextView, per personalizzare il colore e la dimensione del carattere; (action_textview)
  2. My SearchBar utilizza una visualizzazione personalizzata con solo un EditText; (action_searchview)

risposta

11

Da ActionBarDrawerToggle è possibile utilizzare il metodo setDrawerIndicatorEnabled(Boolean enable). In alternativa, è possibile impostare le opzioni di visualizzazione ActionBar. Nello specifico la bandiera DISPLAY_HOME_AS_UP. Link to docs

Quindi gestire l'evento click come al solito.

+0

Funziona alla grande! Grazie! :) –

Problemi correlati