示例#1
0
        public BaseCellView(Context context, Cell cell) : base(context)
        {
            _cell = cell;
            SetMinimumWidth((int)context.ToPixels(25));
            SetMinimumHeight((int)context.ToPixels(25));
            Orientation = Orientation.Horizontal;

            var padding = (int)context.FromPixels(8);

            SetPadding(padding, padding, padding, padding);

            _imageView = new ImageView(context);
            var imageParams = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.MatchParent)
            {
                Width       = (int)context.ToPixels(60),
                Height      = (int)context.ToPixels(60),
                RightMargin = 0,
                Gravity     = GravityFlags.Center
            };

            using (imageParams)
                AddView(_imageView, imageParams);

            var textLayout = new LinearLayout(context)
            {
                Orientation = Orientation.Vertical
            };

            _mainText = new TextView(context);
            _mainText.SetSingleLine(true);
            _mainText.Ellipsize = TextUtils.TruncateAt.End;
            _mainText.SetPadding((int)context.ToPixels(15), padding, padding, padding);
            TextViewCompat.SetTextAppearance(_mainText, global::Android.Resource.Style.TextAppearanceSmall);

            using (var lp = new LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent))
                textLayout.AddView(_mainText, lp);

            _detailText = new TextView(context);
            _detailText.SetSingleLine(true);
            _detailText.Ellipsize = TextUtils.TruncateAt.End;
            _detailText.SetPadding((int)context.ToPixels(15), padding, padding, padding);
            _detailText.Visibility = ViewStates.Gone;
            TextViewCompat.SetTextAppearance(_detailText, global::Android.Resource.Style.TextAppearanceSmall);

            using (var lp = new LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent))
                textLayout.AddView(_detailText, lp);

            var layoutParams = new LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent)
            {
                Width = 0, Weight = 1, Gravity = GravityFlags.Center
            };

            using (layoutParams)
                AddView(textLayout, layoutParams);

            SetMinimumHeight((int)context.ToPixels(DefaultMinHeight));
            _androidDefaultTextColor  = Color.FromUint((uint)_mainText.CurrentTextColor);
            _mainText.TextAlignment   = global::Android.Views.TextAlignment.ViewStart;
            _detailText.TextAlignment = global::Android.Views.TextAlignment.ViewStart;
        }
示例#2
0
        /// <summary>
        /// Add a new group that will display a header in this AboutPage
        /// A header will be displayed in the order it was added.
        /// </summary>
        /// <param name="name">the title for this group</param>
        /// <returns>AboutPage instance for builder pattern support</returns>
        public AboutPage AddGroup(string name)
        {
            var textView = new TextView(_mContext);

            textView.Text = name;
            TextViewCompat.SetTextAppearance(textView, Resource.Style.about_groupTextAppearance);
            var textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent);

            if (_mCustomFont != null)
            {
                textView.Typeface = _mCustomFont;
            }

            int padding = _mContext.Resources.GetDimensionPixelSize(Resource.Dimension.about_group_text_padding);

            textView.SetPadding(padding, padding, padding, padding);

            if (_mIsRtl)
            {
                textView.Gravity   = GravityFlags.Right | GravityFlags.CenterVertical;
                textParams.Gravity = GravityFlags.Right | GravityFlags.CenterVertical;
            }
            else
            {
                textView.Gravity   = GravityFlags.Left | GravityFlags.CenterVertical;
                textParams.Gravity = GravityFlags.Left | GravityFlags.CenterVertical;
            }
            textView.LayoutParameters = textParams;

            ((LinearLayout)_mView.FindViewById(Resource.Id.about_providers)).AddView(textView);
            return(this);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            typography_example_body_2 = FindViewById <TextView>(Resource.Id.typography_example_body_2);

            TextViewCompat.SetTextAppearance(typography_example_body_2, Resource.Style.TextAppearance_UIFabric_Body2);
        }
示例#4
0
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            var baseView = base.GetView(position, convertView, parent);

            if (baseView is TextView tv)
            {
                TextViewCompat.SetTextAppearance(tv, Resource.Style.LightGrayTextMedium);
            }

            return(baseView);
        }
示例#5
0
        public override View GetDropDownView(int position, View convertView, ViewGroup parent)
        {
            var baseView = base.GetDropDownView(position, convertView, parent);

            if (baseView is TextView tv)
            {
                var style = position == spinner.SelectedItemPosition ? Resource.Style.SpinnerItemSelected : Resource.Style.SpinnerItem;
                TextViewCompat.SetTextAppearance(tv, style);
                tv.SetBackgroundResource(Resource.Color.LightGreyFillColor1);
            }

            return(baseView);
        }
示例#6
0
        public EntryCellView(Context context, Cell cell) : base(context)
        {
            _cell = cell;
            SetMinimumWidth((int)context.ToPixels(50));
            SetMinimumHeight((int)context.ToPixels(85));
            Orientation = Orientation.Horizontal;

            var padding = (int)context.ToPixels(8);

            SetPadding((int)context.ToPixels(15), padding, padding, padding);

            _label = new TextView(context);
            TextViewCompat.SetTextAppearance(_label, global::Android.Resource.Style.TextAppearanceSmall);

            var layoutParams = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
            {
                Gravity = GravityFlags.CenterVertical
            };

            using (layoutParams)
                AddView(_label, layoutParams);

            EditText = new EntryCellEditText(context);
            EditText.AddTextChangedListener(this);
            EditText.OnFocusChangeListener = this;
            EditText.SetOnEditorActionListener(this);
            EditText.ImeOptions         = ImeAction.Done;
            EditText.BackButtonPressed += OnBackButtonPressed;
            //editText.SetBackgroundDrawable (null);
            layoutParams = new LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent)
            {
                Width = 0, Weight = 1, Gravity = GravityFlags.FillHorizontal | GravityFlags.Center
            };
            using (layoutParams)
                AddView(EditText, layoutParams);
        }
        private void setTextViewTextColorFallbackColorWhenMissingStyleAttrs(AppCompatTextView textView)
        {
            var useDefaultColor = false;

            try
            {
                TextViewCompat.SetTextAppearance(textView, textHelperTextAppearance);
                if (MarshmallowApis.AreAvailable && textView.TextColors.DefaultColor == fallbackTextColorAfterMarshmallow)
                {
                    useDefaultColor = true;
                }
            }
            catch (Exception e)
            {
                useDefaultColor = true;
            }

            if (useDefaultColor)
            {
                TextViewCompat.SetTextAppearance(textView, Resource.Style.TextAppearance_AppCompat_Caption);
                Color defaultTextColor = new Color(ContextCompat.GetColor(Context, Resource.Color.defaultText));
                textView.SetTextColor(defaultTextColor);
            }
        }
示例#8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="element"></param>
        /// <returns></returns>
        private View CreateItem(Element element)
        {
            var wrapper = new LinearLayout(_mContext);

            wrapper.Orientation = Orientation.Horizontal;
            wrapper.Clickable   = true;

            if (element.ClickHandler != null)
            {
                wrapper.Click += element.ClickHandler;
            }
            else if (element.Intent != null)
            {
                wrapper.Click += (sender, args) =>
                {
                    try
                    {
                        _mContext.StartActivity(element.Intent);
                    }
                    catch (Exception)
                    {
                        // ignored
                    }
                };
            }

            var outValue = new TypedValue();

            _mContext.Theme.ResolveAttribute(Android.Resource.Attribute.SelectableItemBackground, outValue, true);
            wrapper.SetBackgroundResource(outValue.ResourceId);

            int padding = _mContext.Resources.GetDimensionPixelSize(Resource.Dimension.about_text_padding);

            wrapper.SetPadding(padding, padding, padding, padding);
            var wrapperParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent);

            wrapper.LayoutParameters = wrapperParams;

            var textView = new TextView(_mContext);

            TextViewCompat.SetTextAppearance(textView, Resource.Style.about_elementTextAppearance);
            var textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent);

            textView.LayoutParameters = textParams;
            if (_mCustomFont != null)
            {
                textView.Typeface = _mCustomFont;
            }

            ImageView iconView = null;

            if (element.IconDrawable != 0)
            {
                iconView = new ImageView(_mContext);
                int size       = _mContext.Resources.GetDimensionPixelSize(Resource.Dimension.about_icon_size);
                var iconParams = new LinearLayout.LayoutParams(size, size);
                iconView.LayoutParameters = iconParams;

                int iconPadding = _mContext.Resources.GetDimensionPixelSize(Resource.Dimension.about_icon_padding);
                iconView.SetPadding(iconPadding, 0, iconPadding, 0);

                if (Build.VERSION.SdkInt < BuildVersionCodes.Lollipop)
                {
                    var drawable = VectorDrawableCompat.Create(iconView.Resources, element.IconDrawable, iconView.Context.Theme);
                    iconView.SetImageDrawable(drawable);
                }
                else
                {
                    iconView.SetImageResource(element.IconDrawable);
                }

                var wrappedDrawable = DrawableCompat.Wrap(iconView.Drawable);
                wrappedDrawable = wrappedDrawable.Mutate();

                if (element.AutoApplyIconTint)
                {
                    // ReSharper disable once BitwiseOperatorOnEnumWithoutFlags
                    var currentNightMode = _mContext.Resources.Configuration.UiMode & UiMode.NightMask;
                    if (currentNightMode != UiMode.NightYes)
                    {
                        if (element.IconTint != 0)
                        {
                            DrawableCompat.SetTint(wrappedDrawable, ContextCompat.GetColor(_mContext, element.IconTint));
                        }
                        else
                        {
                            DrawableCompat.SetTint(wrappedDrawable, ContextCompat.GetColor(_mContext, Resource.Color.about_item_icon_color));
                        }
                    }
                    else if (element.IconNightTint != 0)
                    {
                        DrawableCompat.SetTint(wrappedDrawable, ContextCompat.GetColor(_mContext, element.IconNightTint));
                    }
                    else
                    {
                        DrawableCompat.SetTint(wrappedDrawable, AboutPageUtils.GetThemeAccentColor(_mContext));
                    }
                }
            }
            else
            {
                int iconPadding = _mContext.Resources.GetDimensionPixelSize(Resource.Dimension.about_icon_padding);
                textView.SetPadding(iconPadding, iconPadding, iconPadding, iconPadding);
            }

            textView.Text = element.Title;

            if (_mIsRtl)
            {
                var gravity = element.Gravity != GravityFlags.NoGravity ? element.Gravity : GravityFlags.Right;

                wrapper.SetGravity(gravity | GravityFlags.CenterVertical);
                textParams.Gravity = gravity | GravityFlags.CenterVertical;
                wrapper.AddView(textView);
                if (element.IconDrawable != 0)
                {
                    wrapper.AddView(iconView);
                }
            }
            else
            {
                var gravity = element.Gravity != GravityFlags.NoGravity ? element.Gravity : GravityFlags.Left;

                wrapper.SetGravity(gravity | GravityFlags.CenterVertical);
                textParams.Gravity = gravity | GravityFlags.CenterVertical;
                if (element.IconDrawable != 0)
                {
                    wrapper.AddView(iconView);
                }
                wrapper.AddView(textView);
            }

            return(wrapper);
        }
示例#9
0
 public static void SetTextAppearanceCompat(this TextView textView, Context context, int resId)
 {
     TextViewCompat.SetTextAppearance(textView, resId);
 }