我能够使用下面的标记名称获取片段,
Fragment fragmentName = getSupportFragmentManager().findFragmentByTag("TagName");
但我需要在backstack中获取片段的索引
我想做什么
getSupportFragmentManager().popBackStack("TagName", FragmentManager.POP_BACK_STACK_INCLUSIVE);
请指导我实现这一目标。
答案 0 :(得分:1)
要在backstack中获取片段的索引,您需要使用以下方法:
private int getIndex(String tagname) {
FragmentManager manager = getFragmentManager();
for (int i = 0; i < manager.getBackStackEntryCount(); i++) {
if (manager.getBackStackEntryAt(i).getName().equalsIgnoreCase(tagname)) {
return i;
}
}
return 0;
}
但是当您设置任何片段时,请将其插入带有标签名称的Backstack。
fragmentTransaction.replace(android.R.id.tabcontent, fragment, tagname);
fragmentTransaction.addToBackStack(tagname);
我认为它会起作用,如果没有,请告诉我。