public static void UpdatePadding(this AppCompatButton appCompatButton, IButton button, Thickness?defaultPadding = null) { var context = appCompatButton.Context; if (context == null) { return; } // TODO: have a way to use default padding // Windows keeps the default as a base but this is also wrong. // var padding = defaultPadding ?? new Thickness(); var padding = new Thickness(); padding.Left += context.ToPixels(button.Padding.Left); padding.Top += context.ToPixels(button.Padding.Top); padding.Right += context.ToPixels(button.Padding.Right); padding.Bottom += context.ToPixels(button.Padding.Bottom); appCompatButton.SetPadding( (int)padding.Left, (int)padding.Top, (int)padding.Right, (int)padding.Bottom); }
public static void UpdatePadding(this AppCompatButton appCompatButton, IButton button) { var context = appCompatButton.Context; if (context == null) { return; } var padding = button.Padding; appCompatButton.SetPadding( (int)context.ToPixels(padding.Left), (int)context.ToPixels(padding.Top), (int)context.ToPixels(padding.Right), (int)context.ToPixels(padding.Bottom)); }
void UpdatePadding() { AppCompatButton view = View; if (view == null) { return; } if (_disposed || _renderer == null || _element == null) { return; } if (!_defaultPaddingPix.HasValue) { _defaultPaddingPix = new Thickness(view.PaddingLeft, view.PaddingTop, view.PaddingRight, view.PaddingBottom); } // Currently the Padding Bindable property uses a creator factory so once it is set it can't become unset // I would say this is currently a bug but it's a bug that exists already in the code base. // Having this comment and this code more accurately demonstrates behavior then // having an else clause for when the PaddingProperty isn't set if (!_element.IsSet(Button.PaddingProperty)) { return; } var padding = _element.Padding; var adjustment = 0.0; if (_borderAdjustsPadding && _element is IBorderElement borderElement && borderElement.IsBorderWidthSet() && borderElement.BorderWidth != borderElement.BorderWidthDefaultValue) { adjustment = borderElement.BorderWidth; } var defaultPadding = _preserveInitialPadding && _defaultPaddingPix.HasValue ? _defaultPaddingPix.Value : new Thickness(); view.SetPadding( (int)(Context.ToPixels(padding.Left + adjustment) + defaultPadding.Left), (int)(Context.ToPixels(padding.Top + adjustment) + defaultPadding.Top), (int)(Context.ToPixels(padding.Right + adjustment) + defaultPadding.Right), (int)(Context.ToPixels(padding.Bottom + adjustment) + defaultPadding.Bottom)); }
protected override AppCompatButton CreateNativeControl() { var context = new ContextThemeWrapper(Context, Resource.Style.Widget_AppCompat_Button_Borderless); var button = new AppCompatButton(context, null, Resource.Style.Widget_AppCompat_Button_Borderless); button.SetPadding(0, 0, 0, 0); button.SetLineSpacing(0, 0); button.SetMinWidth(1); button.SetMinWidth(1); button.SetMinimumHeight(1); button.SetMinimumWidth(1); button.SetPaddingRelative(0, 0, 0, 0); //button.Set(0,0,0,0); return(button); }
private void LoadDaySelectorButtons(int type = 1) { layoutButtons = FindViewById <LinearLayout>(Resource.Id.layout_buttons); layoutButtons.RemoveAllViews(); var layoutButtonParams = new LinearLayoutCompat.LayoutParams( (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 40, Resources.DisplayMetrics), (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 40, Resources.DisplayMetrics)) { Width = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 40, Resources.DisplayMetrics), Height = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 40, Resources.DisplayMetrics), MarginEnd = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 5, Resources.DisplayMetrics) }; int dayIndex = ReturnDayIndex(); DateTime baseDate = DateTime.Today; // var today = baseDate; // var yesterday = baseDate.AddDays(-1); DateTime thisWeekStart = baseDate.AddDays(-dayIndex); // var thisWeekEnd = thisWeekStart.AddDays(7).AddSeconds(-1); // var lastWeekStart = thisWeekStart.AddDays(-7); // var lastWeekEnd = thisWeekStart.AddSeconds(-1); DateTime thisMonthStart = baseDate.AddDays(1 - baseDate.Day); // var thisMonthEnd = thisMonthStart.AddMonths(1).AddSeconds(-1); // var lastMonthStart = thisMonthStart.AddMonths(-1); // var lastMonthEnd = thisMonthStart.AddSeconds(-1); switch (type) { case 1: GetDataForChart(thisWeekStart, _dataType == "BloodPressure"); break; case 2: GetDataForChart(thisMonthStart, _dataType == "BloodPressure"); break; case 3: GetDataForChart(new DateTime(DateTime.Now.Year, 1, 1), _dataType == "BloodPressure"); break; default: return; } if (type != 3) { string[] days = { "L", "M", "M", "J", "V", "S", "D" }; int dayOfMonth = DateTime.Now.Day; int numberOfDaysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month); int size = type == 1 && type != 3 ? days.Length : numberOfDaysInMonth; var activeButton = new AppCompatButton(this); for (var i = 0; i < size; i++) { bool isActive = type == 1 && type != 3 ? i == dayIndex : i + 1 == dayOfMonth; AppCompatButton btn = DaySelectorButton(isActive); btn.Id = i + 1; btn.Text = type == 1 && type != 3 ? i < days.Length ? days[i] : i.ToString() : (i + 1).ToString(); btn.LayoutParameters = layoutButtonParams; if (type == 1 && type != 3 && i > dayIndex) { btn.Enabled = false; btn.SetTextColor(Resources.GetColor(Resource.Color.colorSecondary, Theme)); } else if (i + 1 > dayOfMonth) { btn.Enabled = false; btn.SetTextColor(Resources.GetColor(Resource.Color.colorSecondary, Theme)); } if (isActive) { activeButton = btn; } layoutButtons.AddView(btn); } if (type == 2) { _scrollViewButtons.PostDelayed(delegate { _scrollViewButtons.SmoothScrollTo(activeButton.Left - 5, 0); }, 30); } } else { Drawable img = Resources.GetDrawable(Resource.Drawable.calendar_date, Theme); img.SetBounds(0, 0, 50, 50); var btn = new AppCompatButton(this) { Id = 1, Text = "Data" //Background = buttonBackgroundA, //LayoutParameters = layoutButtonParams }; btn.SetTextColor(Color.White); btn.Background = buttonBackgroundDatePicker; btn.SetAllCaps(false); btn.SetCompoundDrawables(img, null, null, null); btn.SetPadding((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 8, Resources.DisplayMetrics), (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 8, Resources.DisplayMetrics), (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 8, Resources.DisplayMetrics), (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 8, Resources.DisplayMetrics)); btn.Click += (sender, args) => { var frag = SharingDatePickerFragment.NewInstance(delegate(DateTime time) { //_tbDate.Text = time.ToShortDateString(); _tvDate.Text = time.ToShortDateString(); switch (_dataType) { case "BloodPressure": verticalScrollLinearLayout.RemoveAllViewsInLayout(); horizontalScrollLinearLayout.RemoveAllViewsInLayout(); LoadDataInScrollLayouts(time); break; case "BloodGlucose": verticalScrollLinearLayout.RemoveAllViewsInLayout(); LoadDataInScrollLayouts(time, false); break; } }); frag.Show(SupportFragmentManager, SharingDatePickerFragment.TAG); }; layoutButtons.AddView(btn); } }