2015-01-06 2 views
6

При использовании нового Toolbar с библиотекой поддержки appcompat мне кажется, что кнопка «Домой» не работает так, как раньше, если вы не установите допустимое меню параметров. Простой и болотно стандарт деятельности:Кнопка панели инструментов не работает, если нет дополнительного меню

public class MyActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.some_page); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    ActionBar bar = getSupportActionBar(); 
    bar.setHomeButtonEnabled(true); 
    bar.setDisplayHomeAsUpEnabled(true); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    // getMenuInflater().inflate(R.menu.some_menu, menu); 
    return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
     onBackPressed() or finish() or whatever(); 
     break; 
    } 
    return super.onOptionsItemSelected(item); 
    } 
} 

Если есть меню установлен в onCreateOptionsMenu(), onOptionsItemSelected() будет называться все в порядке с android.R.id.home и все прекрасно. Однако, если вообще нет onCreateOptionsMenu() (или он пуст, либо возвращается true, либо вызывает функцию super), onOptionsItemSelected() вообще не будет вызываться, поэтому нет возможности поймать щелчок на кнопке «Домой». Я даже пытался передать пустое меню до onCreateOptionsMenu(), но это не помогло.

Есть ли обходной путь, который позволяет нам иметь действующую кнопку «Домой» на страницах, которые не нуждаются в функциональном меню опций?

+0

Я нашел это сейчас, это поскользнулись мое внимание на первом, потому что я * не * на JB, но KK: http://stackoverflow.com/questions/26859841/homeasup-button-has-no-effect-in-android-4-2-2-with-appcompat-21-0-0?rq=1 –

ответ

0

Вы можете попробовать это ..

toolbar.setNavigationOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent =new Intent(Context,<Destination activity); 
startActivity(intent); 
} 
}); 

Надеется, что это поможет ..

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