我正在做一个项目,我需要能够使用每个片段中的后退按钮在以前的片段之间导航,我有通过在操作栏中使用后退箭头编写的方法,但是,我希望能够在按下的后退按钮上使用相同的功能。我不想使用后台堆栈。有没有办法做到这一点?
编辑
我希望能够在用户单击后退按钮时调用下面的返回上一个方法,而不是使用后退堆栈。我需要在片段中使用 gobackpressed 方法。这可能吗?我希望这是清晰和简洁的。对于上述造成的任何混淆,我们深表歉意。
返回上一个
public void gobackToPreviousFragment(String preFragmentTag, Fragment preFragment){
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.setCustomAnimations(R.animator.close_slide_in,R.animator.close_slide_out);
ft.show(preFragment);
//**BY REMOVING FRAGMENT, WHEN USER TRIES TO REVISIT, FRAGMENT IS BLACK**
ft.remove(fm.findFragmentByTag(Misc.currentContentFragmentTag));
ft.addToBackStack(null);
ft.commit();
Misc.currentContentFragmentTag = preFragmentTag;
createBar(preFragment);
}
直走
public void gotoNextFragment(String nextTag, Fragment nextFragment){
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.setCustomAnimations(R.animator.enter_slide_in, R.animator.enter_slide_out);
boolean newlyCreated = false;
if(nextFragment == null){
nextFragment = Fragment.instantiate(this, nextTag);
newlyCreated = true;
}
//hide current fragment
ft.hide(fm.findFragmentByTag(Misc.currentContentFragmentTag));
if(newlyCreated){
ft.add(R.id.content_frame, nextFragment, nextTag);
}
else{
ft.show(nextFragment);
}
ft.addToBackStack(null);
ft.commit();
Misc.currentContentFragmentTag = nextTag;
createBar(nextFragment);
}
这些是我来回导航的方式,我希望能够在 onBackPressed() 上实现返回方法。这有意义吗?