Beispiel #1
0
        private static void ActionBarUpdateItemsSource(ActionBar actionBar)
        {
            switch (actionBar.GetNavigationMode())
            {
            case ActionBarNavigationMode.List:
#if APPCOMPAT
                IItemsSourceAdapter sourceAdapter = actionBar.GetBindingMemberValue(AttachedMembersCompat.ActionBar.ItemsSourceAdapter);
#else
                IItemsSourceAdapter sourceAdapter = actionBar.GetBindingMemberValue(AttachedMembers.ActionBar.ItemsSourceAdapter);
#endif
                if (sourceAdapter == null)
                {
                    sourceAdapter = AndroidToolkitExtensions.ItemsSourceAdapterFactory(actionBar, actionBar.ThemedContext, DataContext.Empty);
#if APPCOMPAT
                    actionBar.SetBindingMemberValue(AttachedMembersCompat.ActionBar.ItemsSourceAdapter, sourceAdapter);
#else
                    actionBar.SetBindingMemberValue(AttachedMembers.ActionBar.ItemsSourceAdapter, sourceAdapter);
#endif
                    actionBar.SetListNavigationCallbacks(sourceAdapter, new ActionBarNavigationListener(actionBar));
                }
#if APPCOMPAT
                sourceAdapter.ItemsSource = actionBar.GetBindingMemberValue(AttachedMembersCompat.ActionBar.ItemsSource);
#else
                sourceAdapter.ItemsSource = actionBar.GetBindingMemberValue(AttachedMembers.ActionBar.ItemsSource);
#endif
                break;

            case ActionBarNavigationMode.Standard:
#if APPCOMPAT
                actionBar.SetBindingMemberValue(AttachedMembersCompat.ActionBar.SelectedItem, BindingExtensions.NullValue);
#else
                actionBar.SetBindingMemberValue(AttachedMembers.ActionBar.SelectedItem, BindingExtensions.NullValue);
#endif

                actionBar.SetListNavigationCallbacks(null, null);
#if APPCOMPAT
                actionBar.GetBindingMemberValue(AttachedMembersCompat.ActionBar.ItemsSourceGenerator)?.SetItemsSource(null);
                var adapter = actionBar.GetBindingMemberValue(AttachedMembersCompat.ActionBar.ItemsSourceAdapter);
#else
                actionBar.GetBindingMemberValue(AttachedMembers.ActionBar.ItemsSourceGenerator)?.SetItemsSource(null);
                var adapter = actionBar.GetBindingMemberValue(AttachedMembers.ActionBar.ItemsSourceAdapter);
#endif
                if (adapter != null)
                {
                    adapter.ItemsSource = null;
                }
                break;

            case ActionBarNavigationMode.Tabs:
#if APPCOMPAT
                actionBar.GetBindingMemberValue(AttachedMembersCompat.ActionBar.ItemsSourceGenerator)?.SetItemsSource(actionBar.GetBindingMemberValue(AttachedMembersCompat.ActionBar.ItemsSource));
#else
                actionBar.GetBindingMemberValue(AttachedMembers.ActionBar.ItemsSourceGenerator)?.SetItemsSource(actionBar.GetBindingMemberValue(AttachedMembers.ActionBar.ItemsSource));
#endif

                break;
            }
        }
            private void OnBackPressing(Activity sender, CancelEventArgs args)
            {
                var value = _actionBar.GetBindingMemberValue(AttachedMembersCompat.ActionBar.ContextActionBarVisible);

                if (value)
                {
                    args.Cancel = true;
                }
                _actionBar.SetBindingMemberValue(AttachedMembersCompat.ActionBar.ContextActionBarVisible, false);
            }
Beispiel #3
0
        private void OnEmptyTab()
        {
#if APPCOMPAT
            _actionBar.SetBindingMemberValue(AttachedMembersCompat.ActionBar.SelectedItem, BindingExtensions.NullValue);
#else
            _actionBar.SetBindingMemberValue(AttachedMembers.ActionBar.SelectedItem, BindingExtensions.NullValue);
#endif
            var value = ActionBarTemplate.GetTabContentId(_actionBar);
            if (value == null)
            {
                return;
            }
            _actionBar.ThemedContext.GetActivity()?.FindViewById <FrameLayout>(value.Value)?.RemoveAllViews();
        }
Beispiel #4
0
            public bool OnNavigationItemSelected(int itemPosition, long itemId)
            {
#if APPCOMPAT
                var adapter = _actionBar?.GetBindingMemberValue(AttachedMembersCompat.ActionBar.ItemsSourceAdapter);
#else
                var adapter = _actionBar?.GetBindingMemberValue(AttachedMembers.ActionBar.ItemsSourceAdapter);
#endif

                if (adapter == null)
                {
                    return(false);
                }
#if APPCOMPAT
                _actionBar.SetBindingMemberValue(AttachedMembersCompat.ActionBar.SelectedItem, adapter.GetRawItem(itemPosition));
#else
                _actionBar.SetBindingMemberValue(AttachedMembers.ActionBar.SelectedItem, adapter.GetRawItem(itemPosition));
#endif
                return(true);
            }
 public void Clear(ActionBar bar, ActionBar.Tab tab)
 {
     var fragment = _content as Fragment;
     if (fragment != null)
     {
         var viewModel = fragment.GetDataContext() as IViewModel;
         if (viewModel != null)
             viewModel.Settings.Metadata.Remove(ViewModelConstants.StateNotNeeded);
         var manager = fragment.FragmentManager;
         if (manager != null)
             manager.BeginTransaction()
                    .Remove(fragment)
                    .CommitAllowingStateLoss();
     }
     tab.SetBindingMemberValue(AttachedMembers.Object.Parent, value: null);
     _cleared = true;
 }