using System; using System.ComponentModel; using Android.Content; using Android.Content.Res; using Android.Graphics; using Android.Graphics.Drawables; using Android.Support.V4.Content; using Android.Support.V7.Widget; using Android.Util; using GlobalResource = Android.Resource; using Object = Java.Lang.Object; namespace Xamarin.Forms.Platform.Android.AppCompat { public class ButtonRenderer : ViewRenderer, global::Android.Views.View.IOnAttachStateChangeListener { TextColorSwitcher _textColorSwitcher; float _defaultFontSize; Typeface _defaultTypeface; bool _isDisposed; public ButtonRenderer() { AutoPackage = false; } global::Android.Widget.Button NativeButton => Control; void IOnAttachStateChangeListener.OnViewAttachedToWindow(global::Android.Views.View attachedView) { UpdateText(); } void IOnAttachStateChangeListener.OnViewDetachedFromWindow(global::Android.Views.View detachedView) { } public override SizeRequest GetDesiredSize(int widthConstraint, int heightConstraint) { UpdateText(); return base.GetDesiredSize(widthConstraint, heightConstraint); } protected override AppCompatButton CreateNativeControl() { return new AppCompatButton(Context); } protected override void Dispose(bool disposing) { if (_isDisposed) return; _isDisposed = true; if (disposing) { } base.Dispose(disposing); } protected override void OnElementChanged(ElementChangedEventArgs