protected override void Dispose(bool disposing) { if (disposing) { if (null != ItemBackgroundDrawable) { ItemBackgroundDrawable.Dispose(); } if (null != m_Inflater) { m_Inflater.Dispose(); } if (null != m_OverflowAction) { m_OverflowAction.Dispose(); } ItemBackgroundDrawable = null; m_Inflater = null; m_BarView = null; m_LogoView = null; m_BackIndicator = null; m_TitleView = null; m_ActionsView = null; m_HomeBtn = null; m_HomeLayout = null; m_Progress = null; m_TitleLayout = null; m_Context = null; m_OverflowAction = null; } base.Dispose(disposing); }
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); }
protected override void Dispose(bool disposing) { if (disposing) { if (null != ItemBackgroundDrawable) { ItemBackgroundDrawable.Dispose(); } if (null != _inflater) { _inflater.Dispose(); } if (null != _overflowLegacyBarAction) { _overflowLegacyBarAction.Dispose(); } ItemBackgroundDrawable = null; _inflater = null; _barView = null; _logoView = null; _backIndicator = null; _titleView = null; _actionsView = null; _homeBtn = null; _homeLayout = null; _progress = null; _titleLayout = null; _overflowLegacyBarAction = null; } base.Dispose(disposing); }
/// <summary> /// Shows the provided logo to the left in the action bar. /// /// This is ment to be used instead of the setHomeAction and does not draw /// a divider to the left of the provided logo. /// </summary> /// <param name="resId">The drawable resource id</param> public void SetHomeLogo(int resId) { // TODO: Add possibility to add an IntentAction as well. m_LogoView.SetImageResource(resId); m_LogoView.Visibility = ViewStates.Visible; m_HomeLayout.Visibility = ViewStates.Gone; if (null != ItemBackgroundDrawable) { m_LogoView.SetBackgroundDrawable(ItemBackgroundDrawable.GetConstantState().NewDrawable()); } else if (ItemBackgroundDrawableRaw > 0) { m_LogoView.SetBackgroundResource(ItemBackgroundDrawableRaw); } ((LayoutParams)m_TitleLayout.LayoutParameters).AddRule(LayoutRules.RightOf, Resource.Id.actionbar_home_logo); }
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); }