如何控制片段onResume?

时间:2017-05-19 09:40:25

标签: android

我有三个片段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());
} 

1 个答案:

答案 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。