Merge branch '3.2.0'
This commit is contained in:
Коммит
bed2a0d2fa
|
@ -0,0 +1,62 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xamarin.Forms.CustomAttributes;
|
||||||
|
using Xamarin.Forms.Internals;
|
||||||
|
|
||||||
|
|
||||||
|
#if UITEST
|
||||||
|
using Xamarin.UITest;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using Xamarin.Forms.Core.UITests;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Xamarin.Forms.Controls.Issues
|
||||||
|
{
|
||||||
|
[Preserve(AllMembers = true)]
|
||||||
|
[Issue(IssueTracker.Github, 3507, "[UWP] Scrollview with null content crashes on UWP",
|
||||||
|
PlatformAffected.UWP)]
|
||||||
|
#if UITEST
|
||||||
|
[NUnit.Framework.Category(UITestCategories.ListView)]
|
||||||
|
#endif
|
||||||
|
public class Issue3507 : TestContentPage
|
||||||
|
{
|
||||||
|
Label label;
|
||||||
|
ScrollView scrollView;
|
||||||
|
protected override void Init()
|
||||||
|
{
|
||||||
|
scrollView = new ScrollView();
|
||||||
|
label = new Label();
|
||||||
|
|
||||||
|
Content = new StackLayout()
|
||||||
|
{
|
||||||
|
Children =
|
||||||
|
{
|
||||||
|
label,
|
||||||
|
scrollView
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override async void OnAppearing()
|
||||||
|
{
|
||||||
|
base.OnAppearing();
|
||||||
|
await Task.Delay(500);
|
||||||
|
scrollView.Content = new StackLayout();
|
||||||
|
await Task.Delay(500);
|
||||||
|
scrollView.Content = null;
|
||||||
|
await Task.Delay(500);
|
||||||
|
label.Text = "Success";
|
||||||
|
}
|
||||||
|
|
||||||
|
#if UITEST
|
||||||
|
[Test]
|
||||||
|
public void NullContentOnScrollViewDoesntCrash()
|
||||||
|
{
|
||||||
|
RunningApp.WaitForElement("Success");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
|
@ -369,6 +369,7 @@
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Issue3008.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Issue3008.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Issue3019.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Issue3019.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Issue2993.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Issue2993.cs" />
|
||||||
|
<Compile Include="$(MSBuildThisFileDirectory)Issue3507.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Issue3367.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Issue3367.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)LegacyComponents\NonAppCompatSwitch.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)LegacyComponents\NonAppCompatSwitch.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)MapsModalCrash.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)MapsModalCrash.cs" />
|
||||||
|
|
|
@ -133,7 +133,7 @@ namespace Xamarin.Forms.Platform.UWP
|
||||||
Control.Content = renderer != null ? renderer.ContainerElement : null;
|
Control.Content = renderer != null ? renderer.ContainerElement : null;
|
||||||
|
|
||||||
UpdateMargins();
|
UpdateMargins();
|
||||||
if(renderer.ContainerElement != null)
|
if (renderer?.ContainerElement != null)
|
||||||
renderer.ContainerElement.LayoutUpdated += SetInitialRtlPosition;
|
renderer.ContainerElement.LayoutUpdated += SetInitialRtlPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@ namespace Xamarin.Forms.Platform.UWP
|
||||||
}
|
}
|
||||||
Element.SendScrollFinished();
|
Element.SendScrollFinished();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetInitialRtlPosition(object sender, object e)
|
void SetInitialRtlPosition(object sender, object e)
|
||||||
{
|
{
|
||||||
if (Control == null) return;
|
if (Control == null) return;
|
||||||
|
@ -200,8 +200,7 @@ namespace Xamarin.Forms.Platform.UWP
|
||||||
void ClearRtlScrollCheck()
|
void ClearRtlScrollCheck()
|
||||||
{
|
{
|
||||||
_checkedForRtlScroll = true;
|
_checkedForRtlScroll = true;
|
||||||
var element = (Control.Content as FrameworkElement);
|
if (Control.Content is FrameworkElement element)
|
||||||
if (element != null)
|
|
||||||
element.LayoutUpdated -= SetInitialRtlPosition;
|
element.LayoutUpdated -= SetInitialRtlPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче