void UpdateSelectedColor()
        {
            var color = Android.Graphics.Color.Rgb(180, 180, 180);

            if (Element.SelectedColor != Xamarin.Forms.Color.Default)
            {
                color = Element.SelectedColor.ToAndroid();
            }

            Control.Selector = DrawableUtility.CreateRipple(color);
        }
Beispiel #2
0
        protected virtual void CreateContentView()
        {
            var layoutInflater = (LayoutInflater)_Context.GetSystemService(Context.LayoutInflaterService);
            var contentView    = layoutInflater.Inflate(Resource.Layout.CellBaseView, this, true);

            contentView.LayoutParameters = new ViewGroup.LayoutParams(-1, -1);

            IconView         = contentView.FindViewById <ImageView>(Resource.Id.CellIcon);
            TitleLabel       = contentView.FindViewById <TextView>(Resource.Id.CellTitle);
            DescriptionLabel = contentView.FindViewById <TextView>(Resource.Id.CellDescription);
            ContentStack     = contentView.FindViewById <LinearLayout>(Resource.Id.CellContentStack);
            AccessoryStack   = contentView.FindViewById <LinearLayout>(Resource.Id.CellAccessoryView);
            HintLabel        = contentView.FindViewById <TextView>(Resource.Id.CellHintText);

            _backgroundColor = new ColorDrawable();
            _selectedColor   = new ColorDrawable(Android.Graphics.Color.Argb(125, 180, 180, 180));

            var sel = new StateListDrawable();

            sel.AddState(new int[] { global::Android.Resource.Attribute.StateSelected }, _selectedColor);
            sel.AddState(new int[] { -global::Android.Resource.Attribute.StateSelected }, _backgroundColor);
            sel.SetExitFadeDuration(250);
            sel.SetEnterFadeDuration(250);

            var rippleColor = Android.Graphics.Color.Rgb(180, 180, 180);

            if (CellParent.SelectedColor != Xamarin.Forms.Color.Default)
            {
                rippleColor = CellParent.SelectedColor.ToAndroid();
            }

            _ripple = DrawableUtility.CreateRipple(rippleColor, sel);

            Background = _ripple;

            _defaultTextColor = new Android.Graphics.Color(TitleLabel.CurrentTextColor);
            _defaultFontSize  = TitleLabel.TextSize;

            if (!String.IsNullOrEmpty(Cell.AutomationId))
            {
                contentView.ContentDescription = Cell.AutomationId;
            }
        }