当将点击btn
当我按下btn2
将显示碎片1,我相信碎片1将被放置在后台堆栈中。第二次,当我点击btn
时,我想显示其以前的状态。我将包含使我非常困惑的代码,但我不知道如何去做。Android - 如何显示Backstack碎片
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String str = "frag1";
Fragment videoFragment = new VideoPlayerFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.child_fragment, videoFragment, str);
transaction.addToBackStack(null);
transaction.commit();
}
});
btn2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String str2 ="frag1";
String str3 ="frag2";
//FragmentManager.BackStackEntry backEntry=
//getFragmentManager().getBackStackEntryAt(getActivity().getFragmentManager().
//getBackStackEntryCount()-1);
//String str3 = backEntry.getName();
//Fragment fragment= getFragmentManager().findFragmentByTag(str3);
Fragment videoFragment = new CopyOfVideoPlayerFragment();
FragmentTransaction transaction2 = getFragmentManager().beginTransaction();
transaction2.addToBackStack(str2);
transaction2.replace(R.id.child_fragment, videoFragment, str3);
transaction2.commit();
}
});
代码的混乱及不工作:
FragmentManager.BackStackEntry backEntry=getFragmentManager().getBackStackEntryAt(getActivity().getFragmentManager().getBackStackEntryCount()-1);
String str3 = backEntry.getName();
Fragment fragment= getFragmentManager().findFragmentByTag(str3);
所以你BTN点击第二次,你要显示片段1再次右边的代码? – hardartcore
是的,所以我想检查一下,如果这是第二次点击btn,如果是,那么获取它的保存状态并再次显示它,将片段2放入后台。但是,我也不知道如何让prev陷入困境。与我的backEntry有错误。 – rahstame
如果你想将'Fragment2'放在backstack中,你必须再次添加'Fragment1',这样'Fragment2'可以被添加到backstack中。 – hardartcore