问题
我正在使用 Android Studio 模板中的导航抽屉。我想在我的一些片段中使用UP 按钮(箭头) instend "Hamburger" button。我用AppCompatActivity
.
我使用此代码显示向上按钮箭头:
public void UseUpButton(boolean value) {
ActionBar actionBar = getSupportActionBar();
if (value) {
actionBar.setDisplayHomeAsUpEnabled(false);
toggle.setDrawerIndicatorEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
} else {
toggle.setDrawerIndicatorEnabled(true);
}
}
尝试过的变种:
但我无法点击此按钮。我尝试了一些方法:
利用onOptionsItemSelected
public boolean onOptionsItemSelected(MenuItem item) {
Log.d("WTF", "menu");
switch (item.getItemId())
{
case android.R.id.home:
getFragmentManager().popBackStack();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我添加getSupportActionBar().setHomeButtonEnabled(true);
到我的Activity::onCreate
,onOptionsItemSelected
但当我按下向上按钮时没有调用,当我按下菜单项时正常工作。
使用 ActionBarToggle OnClickListener
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open,
R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
toggle.setToolbarNavigationClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
}
});
但是此方法也不会在按下向上按钮时调用。
结论:
那么,我怎样才能捕捉到向上按钮按下事件呢?