我要更改应用程序中的选项卡,我想从当前Framelayout中删除所有视图,然后添加要导航到的视图。
在API 21,API 24(我测试过)上,一切都按预期工作,但在最新的API版本28中,删除内部视图后,它不会添加新片段。
我添加了一个断点,以查看代码是否到达我要添加片段的事务,并且确实如此。
这是我删除所有视图的地方:
var fragment = FragmentManager.FindFragmentByTag(tag);
if (fragment != null)
{
RunOnUiThread(() =>
{
((FrameLayout)FindViewById(Resource.Id.actualtabcontent)).RemoveAllViewsInLayout();
});
Presenter?.ChangeTab((MvxFragment)fragment);
}
这是我添加新内容的地方
var transaction = _fragmentManager.BeginTransaction();
if (fragment.IsAdded)
{
transaction.Remove(fragment);
}
transaction
.Add(Resource.Id.actualtabcontent, fragment)
.AddToBackStack(fragment.GetType().Name)
.Commit();
同时没有密码。
同样,该应用程序在较低版本的Android上也能正常运行。 在Android API 28上,它不会显示新添加的片段。