private View InflateOverflowAction(ActionBarAction action) { var view = m_Inflater.Inflate(Resource.Layout.OverflowActionBar_Item, m_ActionsView, false); var labelView = view.FindViewById <ImageButton>(Resource.Id.actionbar_item); if (null != ItemBackgroundDrawable) { labelView.SetBackgroundDrawable(ItemBackgroundDrawable.GetConstantState().NewDrawable()); } else if (ItemBackgroundDrawableRaw > 0) { labelView.SetBackgroundResource(ItemBackgroundDrawableRaw); } labelView.SetImageResource(action.GetDrawable()); var spinner = view.FindViewById <Spinner>(Resource.Id.overflow_spinner); m_OverflowAction.OverflowSpinner = spinner; labelView.Tag = action; labelView.SetOnClickListener(this); //view.SetOnLongClickListener(this); m_OverflowAction.Activity = CurrentActivity; return(view); }
/// <summary> /// Remove a action from the action bar. /// </summary> /// <param name="action">The action to remove</param> public void RemoveAction(ActionBarAction action) { for (var i = 0; i < m_ActionsView.ChildCount; i++) { var view = m_ActionsView.GetChildAt(i); if (view == null) { continue; } var tag = view.Tag; var actionBarAction = tag as ActionBarAction; if (actionBarAction == null || !actionBarAction.Equals(action)) { continue; } var menuItemAction = tag as MenuItemActionBarAction; if (menuItemAction != null) { MenuItemsToHide.Remove(menuItemAction.MenuItemId); } m_ActionsView.RemoveView(view); } }
/// <summary> /// Inflates a View with the given Action. /// </summary> /// <param name="action">the action to inflate</param> /// <returns>a view</returns> private View InflateAction(ActionBarAction action) { var view = m_Inflater.Inflate(Resource.Layout.ActionBar_Item, m_ActionsView, false); if (null != ItemBackgroundDrawable) { view.SetBackgroundDrawable(ItemBackgroundDrawable.GetConstantState().NewDrawable()); } else if (ItemBackgroundDrawableRaw > 0) { view.SetBackgroundResource(ItemBackgroundDrawableRaw); } var labelView = view.FindViewById <ImageButton>(Resource.Id.actionbar_item); labelView.SetImageResource(action.GetDrawable()); view.Tag = action; view.SetOnClickListener(this); view.SetOnLongClickListener(this); if (action.PopUpMessage > 0) { view.ContentDescription = Resources.GetString(action.PopUpMessage); } return(view); }
/// <summary> /// Adds new action in the overflow /// </summary> /// <param name="action">Action to add.</param> public void AddOverflowAction(ActionBarAction action) { var index = m_ActionsView.ChildCount; m_ActionsView.AddView(InflateOverflowAction(action), index); m_OverflowAction.Index = index; }
public void SetHomeAction(ActionBarAction action) { m_HomeBtn.SetOnClickListener(this); m_HomeBtn.Tag = action; m_HomeBtn.SetImageResource(action.GetDrawable()); m_HomeLayout.Visibility = ViewStates.Visible; m_BackIndicator.SetBackgroundResource(Settings.UseLightIcons ? Resource.Drawable.actionbar_back_indicator : Resource.Drawable.actionbar_back_indicator_dark); if (null != ItemBackgroundDrawable) { m_HomeBtn.SetBackgroundDrawable(ItemBackgroundDrawable.GetConstantState().NewDrawable()); } else if (ItemBackgroundDrawableRaw > 0) { m_HomeBtn.SetBackgroundResource(ItemBackgroundDrawableRaw); } ((LayoutParams)m_TitleLayout.LayoutParameters).AddRule(LayoutRules.RightOf, Resource.Id.actionbar_home_bg); }
/// <summary> /// Adds a new Action at the specified index. /// </summary> /// <param name="action">the action to add</param> /// <param name="index">the position at which to add the action</param> public void AddAction(ActionBarAction action, int index) { var addActionBar = false; var hideAction = false; if (!ActionBarUtils.ActionFits(CurrentActivity, index, m_HasMenuButton, action.ActionType)) { if (!m_HasMenuButton) { addActionBar = m_OverflowAction.ActionList.Count == 0; m_OverflowAction.AddAction(action); hideAction = true; } } else { if (m_OverflowAction.ActionList.Count != 0) //exists { index = m_OverflowAction.Index; //bring it inside } hideAction = true; m_ActionsView.AddView(InflateAction(action), index); } //simply put it in the menu items to hide if we are a menu item. var taskAction = action as MenuItemActionBarAction; if (taskAction != null && hideAction) { MenuItemsToHide.Add(taskAction.MenuItemId); } if (addActionBar) { AddOverflowAction(m_OverflowAction); } }
private View InflateOverflowAction(ActionBarAction action) { var view = m_Inflater.Inflate(Resource.Layout.OverflowActionBar_Item, m_ActionsView, false); var labelView = view.FindViewById<ImageButton>(Resource.Id.actionbar_item); if (null != ItemBackgroundDrawable) { labelView.SetBackgroundDrawable(ItemBackgroundDrawable.GetConstantState().NewDrawable()); } else if (ItemBackgroundDrawableRaw > 0) { labelView.SetBackgroundResource(ItemBackgroundDrawableRaw); } labelView.SetImageResource(action.GetDrawable()); var spinner = view.FindViewById<Spinner>(Resource.Id.overflow_spinner); m_OverflowAction.OverflowSpinner = spinner; labelView.Tag = action; labelView.SetOnClickListener(this); //view.SetOnLongClickListener(this); m_OverflowAction.Activity = CurrentActivity; return view; }
/// <summary> /// Inflates a View with the given Action. /// </summary> /// <param name="action">the action to inflate</param> /// <returns>a view</returns> private View InflateAction(ActionBarAction action) { var view = m_Inflater.Inflate(Resource.Layout.ActionBar_Item, m_ActionsView, false); if (null != ItemBackgroundDrawable) { view.SetBackgroundDrawable(ItemBackgroundDrawable.GetConstantState().NewDrawable()); } else if (ItemBackgroundDrawableRaw > 0) { view.SetBackgroundResource(ItemBackgroundDrawableRaw); } var labelView = view.FindViewById<ImageButton>(Resource.Id.actionbar_item); labelView.SetImageResource(action.GetDrawable()); view.Tag = action; view.SetOnClickListener(this); view.SetOnLongClickListener(this); if (action.PopUpMessage > 0) view.ContentDescription = Resources.GetString(action.PopUpMessage); return view; }
/// <summary> /// Remove a action from the action bar. /// </summary> /// <param name="action">The action to remove</param> public void RemoveAction(ActionBarAction action) { for (var i = 0; i < m_ActionsView.ChildCount; i++) { var view = m_ActionsView.GetChildAt(i); if (view == null) continue; var tag = view.Tag; var actionBarAction = tag as ActionBarAction; if (actionBarAction == null || !actionBarAction.Equals(action)) continue; var menuItemAction = tag as MenuItemActionBarAction; if (menuItemAction != null) MenuItemsToHide.Remove(menuItemAction.MenuItemId); m_ActionsView.RemoveView(view); } }
/// <summary> /// Adds a new Action at the specified index. /// </summary> /// <param name="action">the action to add</param> /// <param name="index">the position at which to add the action</param> public void AddAction(ActionBarAction action, int index) { var addActionBar = false; var hideAction = false; if (!ActionBarUtils.ActionFits(CurrentActivity, index, m_HasMenuButton, action.ActionType)) { if (!m_HasMenuButton) { addActionBar = m_OverflowAction.ActionList.Count == 0; m_OverflowAction.AddAction(action); hideAction = true; } } else { if (m_OverflowAction.ActionList.Count != 0)//exists index = m_OverflowAction.Index;//bring it inside hideAction = true; m_ActionsView.AddView(InflateAction(action), index); } //simply put it in the menu items to hide if we are a menu item. var taskAction = action as MenuItemActionBarAction; if (taskAction != null && hideAction) MenuItemsToHide.Add(taskAction.MenuItemId); if (addActionBar) AddOverflowAction(m_OverflowAction); }
/// <summary> /// Adds a new Action. /// </summary> /// <param name="action">Action to add.</param> public void AddAction(ActionBarAction action) { AddAction(action, m_ActionsView.ChildCount); }
public void AddAction(ActionBarAction actionBarAction) { ActionList.Add(actionBarAction); m_StringIds.Add(actionBarAction.PopUpMessage == 0 ? "ERROR" : mContext.Resources.GetString(actionBarAction.PopUpMessage)); }