protected override void Dispose(bool disposing) { if (!(_nativeControl is null)) { _nativeControl.CheckedChange -= NativeControl_ValueChanged; } if (!(_nativeRadioButtonControl is null)) { _nativeRadioButtonControl.Dispose(); _nativeRadioButtonControl = null; } RemoveElementHandlers(); try { base.Dispose(disposing); _nativeControl = null; } catch (Exception) { return; } }
private void ConfigureRadioButton(int index, RadioButton radioButton) { if (index == Element.SelectedSegment) { radioButton.SetTextColor(Element.SelectedTextColor.ToAndroid()); _nativeRadioButtonControl = radioButton; } else { var textColor = Element.IsEnabled ? Element.TextColor.ToAndroid() : Element.DisabledColor.ToAndroid(); radioButton.SetTextColor(textColor); } radioButton.TextSize = Convert.ToSingle(Element.FontSize); var font = Font.OfSize(Element.FontFamily, Element.FontSize).ToTypeface(); radioButton.SetTypeface(font, TypefaceStyle.Normal); var gradientDrawable = (StateListDrawable)radioButton.Background; var drawableContainerState = (DrawableContainer.DrawableContainerState)gradientDrawable?.GetConstantState(); var children = drawableContainerState?.GetChildren(); if (!(children is null)) { var selectedShape = children[0] is GradientDrawable drawable ? drawable : (GradientDrawable)((InsetDrawable)children[0]).Drawable; var unselectedShape = children[1] is GradientDrawable drawable1 ? drawable1 : (GradientDrawable)((InsetDrawable)children[1]).Drawable; var backgroundColor = Element.IsEnabled ? Element.TintColor.ToAndroid() : Element.DisabledColor.ToAndroid(); var borderColor = Element.IsEnabled ? Element.BorderColor.ToAndroid() : Element.DisabledColor.ToAndroid(); var borderWidthInPixel = ConvertDipToPixel(Element.BorderWidth); if (!(selectedShape is null)) { selectedShape.SetStroke(borderWidthInPixel, borderColor); selectedShape.SetColor(backgroundColor); } if (!(unselectedShape is null)) { unselectedShape.SetStroke(borderWidthInPixel, borderColor); unselectedShape.SetColor(_unselectedItemBackgroundColor); } } radioButton.Enabled = Element.Children[index].IsEnabled; }
private void Recreate() { DisposeChildren(); if (Control == null) { return; } Control.RemoveAllViews(); if (Element == null) { return; } if (Element.ItemsSource == null) { return; } if (Element.IsVertical) { Control.Orientation = Orientation.Vertical; } Func <object, string> getText = x => x.ToString(); if (Element.LabelPath != null) { getText = x => (string)x.GetType().GetProperty(Element.LabelPath).GetValue(x); } if (Element.SelectedItem == null) { Element.SelectedItem = Element.ItemsSource.Cast <object>().FirstOrDefault(); } foreach (var item in Element.ItemsSource) { var button = new Android.Widget.RadioButton(this.Context); button.Text = getText(item); var vh = new ViewHolder <Android.Widget.RadioButton> { Data = item, View = button }; views.Add(vh); LinearLayout.LayoutParams lp; if (Element.IsVertical) { lp = new LinearLayout.LayoutParams(LayoutParams.WrapContent, LayoutParams.WrapContent); } else { lp = new LinearLayout.LayoutParams(LayoutParams.WrapContent, LayoutParams.WrapContent); lp.Weight = 1; } button.LayoutParameters = lp; Control.AddView(button); button.Checked = item == Element.SelectedItem; button.Click += Button_Click; } }
protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.Button> e) { int f = 1; if (f == 1) { var control = new Android.Widget.CheckBox(this.Context); control.SetHeight(control.Height + 10); (Element as CustomCheckBox).WasCheckedChanged = WasChecked; this.SetNativeControl(control); } else { var control = new Android.Widget.RadioButton(this.Context); this.SetNativeControl(control); } base.OnElementChanged(e); }
private void GetControles() { try { txtBairro = FindViewById <Android.Widget.EditText>(Resource.Id.txtBairro); txtCEP = FindViewById <Android.Widget.EditText>(Resource.Id.txtCEP); txtCidade = FindViewById <Android.Widget.EditText>(Resource.Id.txtCidade); txtDocumento = FindViewById <Android.Widget.EditText>(Resource.Id.txtDocumento); txtEndereco = FindViewById <Android.Widget.EditText>(Resource.Id.txtEndereco); txtNumero = FindViewById <Android.Widget.EditText>(Resource.Id.txtNumero); txtRazao = FindViewById <Android.Widget.EditText>(Resource.Id.txtRazao); txtTelefone = FindViewById <Android.Widget.EditText>(Resource.Id.txtTelefone); spEstado = FindViewById <Android.Widget.Spinner>(Resource.Id.spEstado); rbTPCNPJ = FindViewById <Android.Widget.RadioButton>(Resource.Id.rbCNPJ); rbTPCPF = FindViewById <Android.Widget.RadioButton>(Resource.Id.rbCPF); } catch (System.Exception) { Android.Widget.Toast.MakeText(this, "Erro ao receber controles.", Android.Widget.ToastLength.Short).Show(); } }
private void NativeControl_ValueChanged(object sender, RadioGroup.CheckedChangeEventArgs e) { var rg = (RadioGroup)sender; if (rg.CheckedRadioButtonId != -1) { var id = rg.CheckedRadioButtonId; var radioButton = rg.FindViewById(id); var radioId = rg.IndexOfChild(radioButton); var v = (RadioButton)rg.GetChildAt(radioId); var color = Element.IsEnabled ? Element.TextColor.ToAndroid() : Element.DisabledColor.ToAndroid(); _nativeRadioButtonControl?.SetTextColor(color); v.SetTextColor(Element.SelectedTextColor.ToAndroid()); _nativeRadioButtonControl = v; Element.SelectedSegment = radioId; } }