示例#1
0
        private void TryRestoreSelectedIndex()
        {
            if (!_tabLayout.IsAlive())
            {
                return;
            }
            var activityView = _tabLayout.Context as IActivityView;

            if (activityView == null)
            {
                return;
            }
            var bundle = activityView.Mediator.Bundle;

            if (bundle != null)
            {
                var i = bundle.GetInt(SelectedIndexKey, int.MinValue);
                if (i != int.MinValue)
                {
                    if (_tabLayout.TabCount > i)
                    {
                        _tabLayout.GetTabAt(i).Select();
                    }
                }
            }
            var stateListener = ReflectionExtensions.CreateWeakEventHandler <TabLayoutItemsSourceGenerator, ValueEventArgs <Bundle> >(this, (generator, o, arg3) => generator.ActivityViewOnSaveInstanceState(arg3));

            activityView.Mediator.SaveInstanceState += stateListener.Handle;
        }