Merge branch 'ios-scrolltoposition' of https://github.com/adrianknight89/Xamarin.Forms into adrianknight89-ios-scrolltoposition
This commit is contained in:
Коммит
d34dcf2cbc
|
@ -0,0 +1,49 @@
|
|||
using Xamarin.Forms.CustomAttributes;
|
||||
using Xamarin.Forms.Internals;
|
||||
|
||||
namespace Xamarin.Forms.Controls
|
||||
{
|
||||
[Preserve(AllMembers = true)]
|
||||
[Issue(IssueTracker.Bugzilla, 44461, "ScrollToPosition.Center works differently on Android and iOS", PlatformAffected.iOS)]
|
||||
public class Bugzilla44461 : TestContentPage
|
||||
{
|
||||
protected override void Init()
|
||||
{
|
||||
var grid = new Grid
|
||||
{
|
||||
RowSpacing = 0,
|
||||
};
|
||||
|
||||
var scrollView = new ScrollView
|
||||
{
|
||||
Orientation = ScrollOrientation.Horizontal,
|
||||
VerticalOptions = LayoutOptions.Center,
|
||||
BackgroundColor = Color.Yellow,
|
||||
HeightRequest = 50
|
||||
};
|
||||
grid.Children.Add(scrollView);
|
||||
|
||||
var stackLayout = new StackLayout
|
||||
{
|
||||
Orientation = StackOrientation.Horizontal,
|
||||
Spacing = 20
|
||||
};
|
||||
|
||||
for (var i = 0; i < 10; i++)
|
||||
{
|
||||
var button = new Button
|
||||
{
|
||||
Text = "Button" + i
|
||||
};
|
||||
button.Clicked += (sender, args) =>
|
||||
{
|
||||
scrollView.ScrollToAsync(sender as Button, ScrollToPosition.Center, true);
|
||||
};
|
||||
|
||||
stackLayout.Children.Add(button);
|
||||
}
|
||||
scrollView.Content = stackLayout;
|
||||
Content = grid;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -125,6 +125,7 @@
|
|||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla42364.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla42519.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla43516.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla44461.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)CarouselAsync.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla34561.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla34727.cs" />
|
||||
|
|
|
@ -196,6 +196,10 @@ namespace Xamarin.Forms.Platform.iOS
|
|||
else
|
||||
{
|
||||
var positionOnScroll = Controller.GetScrollPositionForElement(e.Element as VisualElement, e.Position);
|
||||
|
||||
positionOnScroll.X = positionOnScroll.X.Clamp(0, ContentSize.Width - Bounds.Size.Width);
|
||||
positionOnScroll.Y = positionOnScroll.Y.Clamp(0, ContentSize.Height - Bounds.Size.Height);
|
||||
|
||||
switch (ScrollView.Orientation)
|
||||
{
|
||||
case ScrollOrientation.Horizontal:
|
||||
|
|
Загрузка…
Ссылка в новой задаче