summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeungkeun Lee <sngn.lee@samsung.com>2017-04-07 10:16:21 +0900
committerKangho Hur <kangho.hur@samsung.com>2017-07-10 11:11:22 +0900
commit63ebb964c17b4c2df06e13dcaa2970c64db084cc (patch)
tree28ff7d6f9fd5e9cc9dae2fd660e7b45e57aec53c
parente008b04e3551ca57690e10a09237984d3c892c26 (diff)
downloadxamarin-forms-63ebb964c17b4c2df06e13dcaa2970c64db084cc.tar.gz
xamarin-forms-63ebb964c17b4c2df06e13dcaa2970c64db084cc.tar.bz2
xamarin-forms-63ebb964c17b4c2df06e13dcaa2970c64db084cc.zip
Fix ScrollView Content area resize issue
- When content of ScrollView was resized as smaller Scroll area was not adjust to fit the contents - It is a issue of data synchronization (ContentSize and Content.Height / Content.Width) - It was fixed, EFL scroller areas only resize from ContentSize changed callback - It is related with ScrollViewTest4, ScrollViewTest6 Change-Id: I2fed14bc106085dd1eaf83d877484a776fe21c24
-rw-r--r--Xamarin.Forms.Platform.Tizen/Renderers/LayoutRenderer.cs16
-rw-r--r--Xamarin.Forms.Platform.Tizen/Renderers/ScrollViewRenderer.cs14
2 files changed, 14 insertions, 16 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/LayoutRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/LayoutRenderer.cs
index 99e422e9..bf36afa4 100644
--- a/Xamarin.Forms.Platform.Tizen/Renderers/LayoutRenderer.cs
+++ b/Xamarin.Forms.Platform.Tizen/Renderers/LayoutRenderer.cs
@@ -14,22 +14,6 @@ namespace Xamarin.Forms.Platform.Tizen
{
}
- protected override void UpdateLayout()
- {
- // in case of layouts we need to make sure that the minimum size of the native control is updated
- // this is important in case of ScrollView, when it's content is likely to be wider/higher than the window
- // EFL does not allow control to be larger than the window if it's minimum size is smaller than window dimensions
- ScrollView scrollView = Element.Parent as ScrollView;
- if (scrollView != null)
- {
- Size size = scrollView.ContentSize;
- Control.MinimumWidth = Forms.ConvertToScaledPixel(Math.Max(size.Width, scrollView.Content.Width));
- Control.MinimumHeight = Forms.ConvertToScaledPixel(Math.Max(size.Height, scrollView.Content.Height));
- }
-
- base.UpdateLayout();
- }
-
protected override void OnElementChanged(ElementChangedEventArgs<Layout> e)
{
if (null == Control)
diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/ScrollViewRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/ScrollViewRenderer.cs
index 426cccaf..76ce555e 100644
--- a/Xamarin.Forms.Platform.Tizen/Renderers/ScrollViewRenderer.cs
+++ b/Xamarin.Forms.Platform.Tizen/Renderers/ScrollViewRenderer.cs
@@ -70,6 +70,7 @@ namespace Xamarin.Forms.Platform.Tizen
if (_content != null)
{
Control.SetContent(_content, true);
+ UpdateContentSize();
}
}
@@ -100,6 +101,15 @@ namespace Xamarin.Forms.Platform.Tizen
}
}
+ void UpdateContentSize()
+ {
+ if (_content == null)
+ return;
+
+ _content.MinimumWidth = Forms.ConvertToScaledPixel(Element.ContentSize.Width);
+ _content.MinimumHeight = Forms.ConvertToScaledPixel(Element.ContentSize.Height);
+ }
+
/// <summary>
/// An event raised on element's property change.
/// </summary>
@@ -111,6 +121,10 @@ namespace Xamarin.Forms.Platform.Tizen
{
UpdateOrientation();
}
+ else if (ScrollView.ContentSizeProperty.PropertyName == e.PropertyName)
+ {
+ UpdateContentSize();
+ }
base.OnElementPropertyChanged(sender, e);
}