Exemple #1
0
        private void UpdateColor()
        {
            if (_nativeView == null || _backgroundElement == null || _visualElement == null)
            {
                return;
            }

            var color = _backgroundElement.Color == Color.Default
                ? _visualElement.BackgroundColor == Color.Default
                    ? Color.Default
                    : _visualElement.BackgroundColor
                : _backgroundElement.Color;

            if (color == Color.Default)
            {
                return;
            }

            switch (_nativeView)
            {
            case MaterialCardView mCardView:
                mCardView.CardBackgroundColor = ColorStateList.ValueOf(color.ToAndroid());
                break;

            case Chip mChip:
                mChip.ChipBackgroundColor = ColorStateList.ValueOf(color.ToAndroid());
                break;

            case MaterialButton mButton:
                var primaryColor      = color.ToAndroid();
                var alphaPrimaryColor = new global::Android.Graphics.Color(
                    primaryColor.R, primaryColor.G, primaryColor.B, (byte)(0.12 * 255));
                ViewCompat.SetBackgroundTintList(mButton,
                                                 new ColorStateList(ButtonStates, new int[] { primaryColor, alphaPrimaryColor }));
                break;

            default:
                _nativeView.SetColor(color);
                break;
            }
        }