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); }
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(); }
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; }