我有三个片段A,B,C,我的过程是A到B到C.
我希望当我换到C并回叫B时,B可以立即切换到A.
所以我在B上的onResume
上设置了切换片段功能。
但结果是我总是登陆A片段,因为当我改为B时,函数onResume
被称为
我知道我可以移除transaction.addToBackStack(null);
然后我可以C到A
,但它会在我的项目中引起一些错误,所以我试着保留它。
当C回拨给B时,是否只启动任何功能? 提前谢谢。
以下是我的开关功能:
private void switchFragment(Fragment fragment) {
FragmentManager manager = getActivity().getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.mainFrame, fragment, null);
transaction.addToBackStack(null);
transaction.commit();
}
我尝试在片段B上添加onResume
,但它将是A到B,然后B立即返回A.
@Override
public void onResume() {
super.onResume();
//go back to fragment A
switchFragment(NewHomepage.newInstance());
}
答案 0 :(得分:1)
您的片段转换代码应为:
public function employercompany()
{
return $this->belongsTo('App\Company', 'employercompany');
}
}
以上,X是你的片段。使用上面的函数从片段A导航到C后,您的堆栈将包含您指定的名称为'fragment_name_tag'的每个片段。
private void switchFragment(Fragment fragment) {
FragmentManager manager = getActivity().getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.mainFrame, fragment, null);
transaction.addToBackStack("fragment_name_tagX");
transaction.commit();
因此,当您现在按下片段C中的后退按钮时,它将继续片段A。