我正在使用Xamarin和MVVMCross框架开发android。我想更新从片段管理器中删除片段以处理后退按钮,因为我必须在屏幕之间导航,在后面的堆栈中进行交叉引用。所以我想从堆栈中删除重复的条目。它从堆栈中删除重复的条目,但它不会使用最新的片段更新BackStackEntryCount。
我已经编写了代码
public override void OnFragmentChanged(IMvxCachedFragmentInfo fragmentInfo)
{
if (fragmentInfo != null)
{
var ifExists =
SupportFragmentManager.Fragments?.FirstOrDefault(x => x.Tag.ToLower() == fragmentInfo.Tag.ToLower());
if (ifExists != null)
{
var indexOf = SupportFragmentManager.Fragments.IndexOf(ifExists);
var total = SupportFragmentManager.BackStackEntryCount;
for (int i = indexOf + 1; i < total; i++)
{
SupportFragmentManager.Fragments.RemoveAt(i);
}
}
}
base.OnFragmentChanged(fragmentInfo);
}
答案 0 :(得分:0)
signal(SIGINT, int_handler);
是一个只读属性(它只有一个SupportFragmentManager.Fragments
)。修改片段列表的内容对下划线片段后台堆栈计数没有影响。
您可以尝试的是将堆栈弹出到现有片段。这应该删除它上面的所有片段。
get