public override void DestroyItem(ViewGroup container, int position, Java.Lang.Object objectValue)
        {
            var fragment = (Fragment)objectValue;

            if (_curTransaction == null)
            {
                _curTransaction = _fragmentManager.BeginTransaction();
            }

#if DEBUG
            MvxLog.Instance.Trace(
                $"Removing item #{position}: f={objectValue} v={((Fragment)objectValue).View} t={fragment.Tag}");
#endif

            while (_savedState.Count <= position)
            {
                _savedState.Add(null);
                _savedFragmentTags.Add(null);
            }

            _savedState[position]        = fragment.IsAdded ? _fragmentManager.SaveFragmentInstanceState(fragment) : null;
            _savedFragmentTags[position] = fragment.IsAdded ? fragment.Tag : null;
            _fragments[position]         = null;

            _curTransaction.Remove(fragment);
        }
Beispiel #2
0
        public override void DestroyItem(ViewGroup container, int position, Object objectValue)
        {
            var fragment = (Fragment)objectValue;

            if (_curTransaction == null)
            {
                _curTransaction = _fragmentManager.BeginTransaction();
            }

#if DEBUG
            Mvx.Trace("Removing item #" + position + ": f=" + objectValue + " v=" + ((Fragment)objectValue).View +
                      " t=" + fragment.Tag);
#endif

            while (_savedState.Count <= position)
            {
                _savedState.Add(null);
                _savedFragmentTags.Add(null);
            }

            _savedState[position]        = _fragmentManager.SaveFragmentInstanceState(fragment);
            _savedFragmentTags[position] = fragment.Tag;
            _fragments[position]         = null;

            _curTransaction.Remove(fragment);
        }
Beispiel #3
0
        public override void DestroyItem(ViewGroup container, int position,
                                         Java.Lang.Object objectValue)
        {
            var fragment = (TFragment)objectValue;

            _curTransaction = _curTransaction ?? _fm.BeginTransaction();
            if (Debug)
            {
                Log.Verbose(Tag, string.Format("Removing item #{0}: f={1}", position,
                                               fragment));
            }
            while (_savedState.Count <= position)
            {
                _savedState.Add(null);
            }
            _savedState[position] = _fm.SaveFragmentInstanceState(fragment);
            _fragments[position]  = null;

            _curTransaction.Remove(fragment);
        }