당신은 가기 backstack 또는 팝업 항목에의 fragment를 밀어 방법을 추가해야합니다 클래스의 속성을 사용하여 스택.
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if(tab.getPosition()==0)
{
FragmentA frag = new FragmentA();
popToOrPushFragmentWithName(frag, "FragmentA", ft);
}
else
{
FragmentB frag = new FragmentB();
popToOrPushFragmentWithName(frag, "FragmentB", ft);
}
}
난이 도움이되기를 바랍니다 : 다음 함수의 "이름"PARAM은
private void popToOrPushFragmentWithName(Fragment fragment, String name, FragmentTransaction ft) {
FragmentManager manager = getSupportFragmentManager();
// Scan the back stack for an entry with the given fragment name
int count = manager.getBackStackEntryCount();
FragmentManager.BackStackEntry entry = null;
while (--count >= 0) {
FragmentManager.BackStackEntry check = manager.getBackStackEntryAt(count);
if (check.getName() != null && check.getName().equals(name)) {
entry = check;
break;
}
}
if (entry == null) {
// There is no entry, so push the fragment
ft.replace(R.id.fragment_container, fragment);
ft.addToBackStack(name);
// might not need this next line (since you are using tabselected override)
ft.commit();
} else {
// Pop back to the existing fragment (0 = not inclusive, so our fragment by index is on top)
manager.popBackStackImmediate(entry.getId(), 0);
}
}
당신의 onTabselected는 다음과 같이 보일 것이다 찾아서 (필요한 경우) 다시 팝업하는 가장 좋은 방법을 제공합니다. :)
이 작동하지 않습니다. –