通常从一个活动切换到另一个活动汉堡包图标被替换为后退箭头。我想控制那个箭头的功能。我在这里看到了很多内容,但大多数都与硬件的后退按钮有关。我该如何控制?
我正在尝试片段的功能。另外,我的导航抽屉附有汉堡包图标。
我试过了这个 -
Tuple2
但不像我希望的那样工作。
我希望我的后退按钮可以将片段更改为上一个片段。
答案 0 :(得分:1)
我曾经遇到过同样的问题。就像你一样,检查Android.R.id.home是否被点击这样的事情并不奏效。 但我用它来解决它:
将导航侦听器设置为工具栏:
toolbar.setToolbarNavigationClickListener(v -> onBackPressed());
如果它应该在片段内:
示例:
// YourActivity
public void setHomeListener(OnLickListener listener){
toolbar.setToolbarNavigationClickListener(listener);
}
//Fragment's onCreate
((YourActivity)getActivity()).setHomeListener(v -> onBackPressed());
//Fragment's onDestroy
((YourActivity)getActivity()).setHomeListener(null);
当然,请将我们设置为启用以显示后退箭头。
修改强>
如果你不使用labmdas,你应该使用:
(YourActivity)getActivity()).setHomeListener(new OnClickListener() {
@Override
public void onClick(View v) {
YourFragment.this.onBackPressed();
}
});
答案 1 :(得分:0)
ActionBar的后退按钮是一个menuItem,因此您需要覆盖onOptionsItemSelected,如下所示:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home:
//Your back button logic here
break;
}
return true;
}
也不要忘记在设置工具栏
后添加getSupportActionBar().setDisplayHomeAsUpEnabled(true);