Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

[Bug] iOS - Horizontal ScrollView is not scrolled correctly on RTL if initially hidden #13705

Open
jameslavery-zz opened this issue Feb 9, 2021 · 2 comments

Comments

@jameslavery-zz
Copy link

Description

If a horizontal ScrollView with a StackLayout or Grid inside it is not visible when the Page is first visible, when the ScrollView is visible, the contents are scrolled to the right rather than the expected behaviour of being scrolled to the left.

This only occurs on iOS. On Android the behaviour is as expected.

Steps to Reproduce

  1. Create an RTL-aware Xamarin.Forms iOS app
  2. Add a horizontal ScrollView with a StackLayout in it, and with enough content to make the ScrollView need to scroll, and with logic to show the ScrollView after the page is displayed.
  3. Build and run the app on an iPhone which has its culture set to a RTL culture.

Expected Behavior

The ScrollView appears scrolled to the left, and needs to be scrolled to the right to see content on the left.

Actual Behavior

The ScrollView appears scrolled to the right, and needs to be scrolled to the left to see content on the right.

Basic Information

  • Version with issue: Xamarin.Forms 5.0.0.1931
  • Last known good version: Not known.
  • Platform Target Frameworks:
    • iOS: 8.0
  • NuGet Packages:
  • Affected Devices: iPhone SE (2nd Generation) simulator and physical devices.

Environment

Show/Hide Visual Studio info
=== Visual Studio Community 2019 for Mac ===

Version 8.8.7 (build 18)
Installation UUID: abff9ac6-8499-4e25-bb84-cd6af42fbe98
	GTK+ 2.24.23 (Raleigh theme)
	Xamarin.Mac 6.18.0.23 (d16-6 / 088c73638)

	Package version: 612000113

=== Mono Framework MDK ===

Runtime:
	Mono 6.12.0.113 (2020-02/4fdfb5b1fd5) (64-bit)
	Package version: 612000113

=== Roslyn (Language Service) ===

3.8.0-5.20519.18+4c195c3ac1974edcefa76774d7a59a2350ec55fa

=== NuGet ===

Version: 5.8.0.6860

=== .NET Core SDK ===

SDK: /usr/local/share/dotnet/sdk/5.0.102/Sdks
SDK Versions:
	5.0.102
	5.0.101
	5.0.100
	3.1.405
	3.1.404
	3.1.403
	3.1.402
	3.1.401
	3.1.302
	3.1.301
	3.1.300
	3.1.202
	3.1.200
	3.1.102
	3.1.101
	3.0.101
MSBuild SDKs: /Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/bin/MSBuild/Current/bin/Sdks

=== .NET Core Runtime ===

Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
	5.0.2
	5.0.1
	5.0.0
	3.1.11
	3.1.10
	3.1.9
	3.1.8
	3.1.7
	3.1.6
	3.1.5
	3.1.4
	3.1.2
	3.1.1
	3.0.1
	2.1.23
	2.1.22
	2.1.21
	2.1.20
	2.1.19
	2.1.18
	2.1.17
	2.1.16
	2.1.15
	2.1.14

=== .NET Core 3.1 SDK ===

SDK: 3.1.405

=== Xamarin.Profiler ===

Version: 1.6.12.29
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

=== Updater ===

Version: 11

=== Apple Developer Tools ===

Xcode 12.3 (17715)
Build 12C33

=== Xamarin.Mac ===

Xamarin.Mac not installed. Can't find /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/Version.

=== Xamarin.iOS ===

Version: 14.8.0.3 (Visual Studio Community)
Hash: c51fabee8
Branch: xcode12.3
Build date: 2020-12-10 21:05:05-0500

=== Xamarin Designer ===

Version: 16.8.0.510
Hash: 44e3f3ce9
Branch: remotes/origin/d16-8
Build date: 2020-12-10 00:06:14 UTC

=== Xamarin.Android ===

Version: 11.1.0.26 (Visual Studio Community)
Commit: xamarin-android/d16-8/a36ce73
Android SDK: /Users/jameslavery/Library/Developer/Xamarin/android-sdk-macosx
	Supported Android versions:
		7.0 (API level 24)
		8.1 (API level 27)

SDK Tools Version: 26.1.1
SDK Platform Tools Version: 29.0.6
SDK Build Tools Version: 29.0.2

Build Information: 
Mono: 5e9cb6d
Java.Interop: xamarin/java.interop/d16-8@79d9533
ProGuard: Guardsquare/proguard/proguard6.2.2@ebe9000
SQLite: xamarin/sqlite/3.32.1@1a3276b
Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-8@2fb1cbc

=== Microsoft OpenJDK for Mobile ===

Java SDK: /Users/jameslavery/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_1.8.0.25
1.8.0-25
Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL

=== Android SDK Manager ===

Version: 16.8.0.32
Hash: 01a7774
Branch: remotes/origin/d16-8
Build date: 2021-01-14 00:34:58 UTC

=== Android Device Manager ===

Version: 16.8.0.46
Hash: 0a81419
Branch: remotes/origin/d16-8
Build date: 2021-01-14 00:35:22 UTC

=== Build Information ===

Release ID: 808070018
Git revision: 0f6def3c0ff5f9cee230e65718561cb41c8eedc0
Build date: 2021-01-29 08:24:09-05
Build branch: release-8.8
Xamarin extensions: 0f6def3c0ff5f9cee230e65718561cb41c8eedc0

=== Operating System ===

Mac OS X 10.16.0
Darwin 20.3.0 Darwin Kernel Version 20.3.0
    Thu Jan 21 00:07:06 PST 2021
    root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64

=== Enabled user installed extensions ===

MFractor 4.4.6
Straight8's SpecFlow Integration 1.11.3.0
AddinMaker 1.6.0
Project System Tools 0.2
Resource Dictionary Adder 1.0


Screenshots

The first row of labels is always visible. It is scrolled correctly.

The second row of labels in the screenshot below was initially hidden. When shown, the labels are scrolled to the right.

Simulator Screen Shot - iPhone SE (2nd generation) - 2021-02-09 at 09 12 27

Reproduction Link

RtlStackLayoutDemo.zip

Workaround

No workaround found.

@jameslavery-zz jameslavery-zz added s/unverified New report that has yet to be verified t/bug 🐛 labels Feb 9, 2021
@jsuarezruiz
Copy link
Contributor

Thanks for the attached sample.
If the StackLayout is visible, apply the correct behavior. The problem occurs when the visibility is changed.

@jsuarezruiz jsuarezruiz added p/iOS 🍎 e/2 🕑 2 and removed s/unverified New report that has yet to be verified labels Feb 9, 2021
@jameslavery-zz
Copy link
Author

Thanks for the attached sample.
If the StackLayout is visible, apply the correct behavior. The problem occurs when the visibility is changed.

Correct -if the StackLayout (actually, the ScrollView) is already visible the behaviour is correct. The problem occurs if the ScrollView is initially not visible and visibility is subsequently changed to make it visible.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants