我有一个片段(TimerToAnswer),我实现了onBackPressed()
的{{1}}。当isVisible为true时片段是否能够返回,因为有一个计时器来回答问题。在Fragment(TimerToAnswer)中回答问题后,我将重定向到其他片段(ChooseQuestion)以选择其他问题来回答。在这个阶段,当我按下设备按钮后,它再次返回片段(TimerToAnswer),我不想那样做。对于这个问题,我尝试ActionBarActivity
片段(TimerToAnswer),但我无法做到。
我试过了
finish()
要么
getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit();
我在这里尝试
ActionBarActivity
getActivity().getSupportFragmentManager().popBackStack();
片段TimerToAnswer
public class CustomDrawerLayout extends ActionBarActivity implements OnItemClickListener{
@Override
public void onBackPressed() {
TimerToAnswer tt = (TimerToAnswer)getSupportFragmentManager().findFragmentByTag("TimerToAnswer");
if(tt != null && tt.isVisible()){
return;
}else{
super.onBackPressed();
}
}
}
答案 0 :(得分:1)
当用户从TimerToAnswer
返回时,它返回ChooseQuestion
片段的原因是因为这一行:
ft.addToBackStack("back");
这是做什么的,as per the documentation:
将此事务添加到后台堆栈。这意味着交易将在提交后被记住,并且当稍后从堆栈中弹出时将反转其操作。
要解决此问题,请删除该行。