Android API 28在RemoveAllViews之后添加片段

时间:2019-06-14 08:20:47

标签: xamarin.android mvvmcross fragmentmanager

我要更改应用程序中的选项卡,我想从当前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上,它不会显示新添加的片段。

0 个答案:

没有答案