Android API 28 Добавить фрагмент после RemoveAllViews - PullRequest
0 голосов
/ 14 июня 2019

Я изменяю вкладки в приложении, хочу удалить все представления из текущего 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 он не показывает новый добавленный фрагмент.

...