Пример #1
0
        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);
        }
Пример #2
0
        public ActionBar(Context context, IAttributeSet attrs)
            : base(context, attrs)
        {
            m_Context = context;
            m_Inflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);

            m_BarView = (RelativeLayout)m_Inflater.Inflate(Resource.Layout.ActionBar, null);
            AddView(m_BarView);

            m_LogoView = m_BarView.FindViewById<ImageView>(Resource.Id.actionbar_home_logo);
            m_HomeLayout = m_BarView.FindViewById<RelativeLayout>(Resource.Id.actionbar_home_bg);
            m_HomeBtn = m_BarView.FindViewById<ImageButton>(Resource.Id.actionbar_home_btn);
            m_BackIndicator = m_BarView.FindViewById(Resource.Id.actionbar_home_is_back);

            m_TitleView = m_BarView.FindViewById<TextView>(Resource.Id.actionbar_title);
            m_ActionsView = m_BarView.FindViewById<LinearLayout>(Resource.Id.actionbar_actions);

            m_Progress = m_BarView.FindViewById<ProgressBar>(Resource.Id.actionbar_progress);
            m_TitleLayout = m_BarView.FindViewById<RelativeLayout>(Resource.Id.actionbar_title_layout);

            //check if pre-honeycomb. Ideally here you would actually want to check if a menu button exists.
            //however on all pre-honeycomb phones they basically did.
            var currentapiVersion = (int)Build.VERSION.SdkInt;
            m_HasMenuButton = currentapiVersion <= 10;

            m_OverflowAction = new OverflowActionBarAction(context);

            //Custom Attributes (defined in Attrs.xml)
            var a = context.ObtainStyledAttributes(attrs,
                    Resource.Styleable.ActionBar);

            var title = a.GetString(Resource.Styleable.ActionBar_title);
            if (null != title)
                Title = title;

            var titleColor = a.GetColor(Resource.Styleable.ActionBar_title_color, Resources.GetColor(Resource.Color.actionbar_title));
            TitleColor = titleColor;

            var separatorColor = a.GetColor(Resource.Styleable.ActionBar_separator, Resources.GetColor(Resource.Color.actionbar_separator));
            m_ActionsView.SetBackgroundColor(separatorColor);

            using (var background = a.GetDrawable(Resource.Styleable.ActionBar_background)) //recycling the drawable immediately
            {
                if (null != background)
                    BackgroundDrawable = background;
            }

            var backgroundItem = a.GetDrawable(Resource.Styleable.ActionBar_background_item);
            if (null != backgroundItem)
                ItemBackgroundDrawable = backgroundItem;

            a.Recycle();
        }
Пример #3
0
        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);
        }
Пример #4
0
        public ActionBar(Context context, IAttributeSet attrs)
            : base(context, attrs)
        {
            m_Context  = context;
            m_Inflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);

            m_BarView = (RelativeLayout)m_Inflater.Inflate(Resource.Layout.ActionBar, null);
            AddView(m_BarView);

            m_LogoView      = m_BarView.FindViewById <ImageView>(Resource.Id.actionbar_home_logo);
            m_HomeLayout    = m_BarView.FindViewById <RelativeLayout>(Resource.Id.actionbar_home_bg);
            m_HomeBtn       = m_BarView.FindViewById <ImageButton>(Resource.Id.actionbar_home_btn);
            m_BackIndicator = m_BarView.FindViewById(Resource.Id.actionbar_home_is_back);

            m_TitleView   = m_BarView.FindViewById <TextView>(Resource.Id.actionbar_title);
            m_ActionsView = m_BarView.FindViewById <LinearLayout>(Resource.Id.actionbar_actions);

            m_Progress    = m_BarView.FindViewById <ProgressBar>(Resource.Id.actionbar_progress);
            m_TitleLayout = m_BarView.FindViewById <RelativeLayout>(Resource.Id.actionbar_title_layout);

            //check if pre-honeycomb. Ideally here you would actually want to check if a menu button exists.
            //however on all pre-honeycomb phones they basically did.
            var currentapiVersion = (int)Build.VERSION.SdkInt;

            m_HasMenuButton = currentapiVersion <= 10;

            m_OverflowAction = new OverflowActionBarAction(context);

            //Custom Attributes (defined in Attrs.xml)
            var a = context.ObtainStyledAttributes(attrs,
                                                   Resource.Styleable.ActionBar);

            var title = a.GetString(Resource.Styleable.ActionBar_title);

            if (null != title)
            {
                Title = title;
            }

            var titleColor = a.GetColor(Resource.Styleable.ActionBar_title_color, Resources.GetColor(Resource.Color.actionbar_title));

            TitleColor = titleColor;

            var separatorColor = a.GetColor(Resource.Styleable.ActionBar_separator, Resources.GetColor(Resource.Color.actionbar_separator));

            m_ActionsView.SetBackgroundColor(separatorColor);

            using (var background = a.GetDrawable(Resource.Styleable.ActionBar_background)) //recycling the drawable immediately
            {
                if (null != background)
                {
                    BackgroundDrawable = background;
                }
            }

            var backgroundItem = a.GetDrawable(Resource.Styleable.ActionBar_background_item);

            if (null != backgroundItem)
            {
                ItemBackgroundDrawable = backgroundItem;
            }

            a.Recycle();
        }