diff options
author | Seungkeun Lee <sngn.lee@samsung.com> | 2017-04-07 10:16:21 +0900 |
---|---|---|
committer | Kangho Hur <kangho.hur@samsung.com> | 2017-07-10 11:11:22 +0900 |
commit | 63ebb964c17b4c2df06e13dcaa2970c64db084cc (patch) | |
tree | 28ff7d6f9fd5e9cc9dae2fd660e7b45e57aec53c | |
parent | e008b04e3551ca57690e10a09237984d3c892c26 (diff) | |
download | xamarin-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.cs | 16 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Renderers/ScrollViewRenderer.cs | 14 |
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); } |