xamarin / Xamarin.Forms

Xamarin.Forms is no longer supported. Migrate your apps to .NET MAUI.
https://aka.ms/xamarin-upgrade
Other
5.62k stars 1.87k forks source link

[Bug] CarouselView scrolling glitches in RefreshView #14046

Open IzyPro opened 3 years ago

IzyPro commented 3 years ago

Description

Carousel doesn't scroll properly when placed inside a RefreshView on Android (I haven't tested on iOS yet)

Steps to Reproduce

<RefreshView IsRefreshing="{Binding IsRefreshing}" Command="{Binding RefreshCommand}">
                        <IndicatorView x:Name="indicator" FlowDirection="LeftToRight" IndicatorColor="{StaticResource ThemeAsh}" SelectedIndicatorColor="{StaticResource ThemeBrown}" HorizontalOptions="EndAndExpand" />
                        <CarouselView ItemsSource="{Binding Details}" IsVisible="{Binding HasData}" IndicatorView="indicator" PeekAreaInsets="0" FlowDirection="LeftToRight" IsScrollAnimated="True" IsSwipeEnabled="True" HeightRequest="150">
                            <CarouselView.ItemTemplate>
                                <DataTemplate>
                                    <Image Source="{Binding imagePath}"/>
                                </DataTemplate>
                            </CarouselView.ItemTemplate>
                        </CarouselView>
                </RefreshView>

Expected Behavior

Both Drag-to-refresh and horizontal scroll should work perfectly

Actual Behavior

Drag-to-scroll works well but the horizontal scroll is bad

Basic Information

Environment

Show/Hide Visual Studio info ``` === Visual Studio Community 2019 for Mac === Version 8.8.4 (build 30) Installation UUID: 29c853b5-142d-4640-b291-03ef8083a618 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.101/Sdks SDK Versions: 5.0.101 5.0.100 3.1.404 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.1 5.0.0 3.1.10 === .NET Core 3.1 SDK === SDK: 3.1.404 === Xamarin.Profiler === Version: 1.6.15.68 Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler === Updater === Version: 11 === Apple Developer Tools === Xcode 12.2 (17535) Build 12B45b === Xamarin.Mac === Xamarin.Mac not installed. Can't find /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/Version. === Xamarin.iOS === Version: 14.6.0.15 (Visual Studio Community) Hash: 87a1b18d8 Branch: d16-8 Build date: 2020-11-16 21:39:41-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.17 (Visual Studio Community) Commit: xamarin-android/d16-8/c0e2b8e Android SDK: /Users/isrealulelu/Library/Android/sdk Supported Android versions: None installed SDK Tools Version: 26.1.1 SDK Platform Tools Version: 30.0.4 SDK Build Tools Version: 30.0.3 Build Information: Mono: be2226b 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/isrealulelu/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: 2020-12-10 00:32:24 UTC === Android Device Manager === Version: 16.8.0.46 Hash: 0a81419 Branch: remotes/origin/d16-8 Build date: 2020-12-10 00:32:44 UTC === Build Information === Release ID: 808040030 Git revision: eaa21a8983aa5c4bcf6a665892478b4f3d413418 Build date: 2020-12-10 11:06:12-05 Build branch: release-8.8 Xamarin extensions: eaa21a8983aa5c4bcf6a665892478b4f3d413418 === Operating System === Mac OS X 10.15.7 Darwin 19.6.0 Darwin Kernel Version 19.6.0 Mon Aug 31 22:12:52 PDT 2020 root:xnu-6153.141.2~1/RELEASE_X86_64 x86_64 === Enabled user installed extensions === FileNesting 0.1.2 NuGet Package Management Extensions 0.26 NuGet Package Explorer 0.6 HotReloading 0.3.1 ```

Workaround

Removing the RefreshView was the only viable option

jsuarezruiz commented 3 years ago

Could you share a gif/video or an attached sample where see or reproduce the issue?

I have created a small sample: Issue14046.zip

And the behavior is: issue1406

sandsad commented 3 years ago

Could you share a gif/video or an attached sample where see or reproduce the issue?

I have created a small sample: Issue14046.zip

And the behavior is: issue1406

drop down refresh dose not work on iOS