public void OnDetachedIfNotDisposed() { _track.SetTintList(null); _thumb.SetTintList(null); //restore like default color but not completely. var color = Xamarin.Forms.Color.Accent.ToAndroid(); var trackColors = new ColorStateList(new int[][] { new int[] { global::Android.Resource.Attribute.StateChecked }, new int[] { -global::Android.Resource.Attribute.StateChecked }, }, new int[] { Android.Graphics.Color.Argb(76, color.R, color.G, color.B), Android.Graphics.Color.Argb(76, 50, 50, 50) }); _orgTrack.SetTintList(trackColors); _orgTrack.SetState(_track.GetState()); _orgThumb.SetState(_thumb.GetState()); _orgBackground.SetState(_background.GetState()); _aSwitch.TrackDrawable = _orgTrack; _aSwitch.ThumbDrawable = _orgThumb; _aSwitch.Background = _orgBackground; }