IImageRendererController,
AView.IOnFocusChangeListener,
AView.IOnClickListener,
- AView.IOnTouchListener
+ AView.IOnTouchListener,
+ ILayoutChanges
{
bool _inputTransparent;
bool _disposed;
{
renderer.ElementPropertyChanged += OnElementPropertyChanged;
renderer.ElementChanged += OnElementChanged;
- renderer.LayoutChange += OnLayoutChange;
+
+ if(renderer is ILayoutChanges layoutChanges)
+ layoutChanges.LayoutChange += OnLayoutChange;
}
static void OnLayoutChange(object sender, global::Android.Views.View.LayoutChangeEventArgs e)
{
renderer.ElementPropertyChanged -= OnElementPropertyChanged;
renderer.ElementChanged -= OnElementChanged;
- renderer.LayoutChange -= OnLayoutChange;
+ if (renderer is ILayoutChanges layoutChanges)
+ layoutChanges.LayoutChange -= OnLayoutChange;
if (renderer.View is ImageView imageView)
imageView.SetImageDrawable(null);
namespace Xamarin.Forms.Platform.Android.FastRenderers
{
- internal sealed class ImageRenderer : AImageView, IVisualElementRenderer, IImageRendererController, IViewRenderer, ITabStop
+ internal sealed class ImageRenderer : AImageView, IVisualElementRenderer, IImageRendererController, IViewRenderer, ITabStop,
+ ILayoutChanges
{
bool _disposed;
Image _element;
--- /dev/null
+using System;
+using ALayoutChangeEventArgs = Android.Views.View.LayoutChangeEventArgs;
+
+namespace Xamarin.Forms.Platform.Android
+{
+ internal interface ILayoutChanges
+ {
+ event EventHandler<ALayoutChangeEventArgs> LayoutChange;
+ }
+}
\ No newline at end of file
void SetLabelFor(int? id);
void UpdateLayout();
-
- event EventHandler<ALayoutChangeEventArgs> LayoutChange;
}
}
\ No newline at end of file
remove { _elementPropertyChanged -= value; }
}
- event EventHandler<AView.LayoutChangeEventArgs> IVisualElementRenderer.LayoutChange
- {
- add =>_flyoutRenderer.AndroidView.LayoutChange += value;
- remove => _flyoutRenderer.AndroidView.LayoutChange -= value;
- }
-
VisualElement IVisualElementRenderer.Element => Element;
VisualElementTracker IVisualElementRenderer.Tracker => null;
<Compile Include="GetDesiredSizeDelegate.cs" />
<Compile Include="IBorderVisualElementRenderer.cs" />
<Compile Include="IDeviceInfoProvider.cs" />
+ <Compile Include="ILayoutChanges.cs" />
<Compile Include="ITabStop.cs" />
<Compile Include="IPickerRenderer.cs" />
<Compile Include="PickerManager.cs" />