From df1ba62fd04dc7b702dce60185da90be11a81418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20de=20Ory?= Date: Fri, 3 Apr 2020 22:34:07 +0200 Subject: [PATCH 1/2] Fixed #4090 --- .../Issue4090.cs | 64 +++++++++++++++++++ ...rin.Forms.Controls.Issues.Shared.projitems | 9 ++- .../Renderers/ListViewRenderer.cs | 16 +++++ 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4090.cs diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4090.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4090.cs new file mode 100644 index 00000000000..bda7aefda8e --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4090.cs @@ -0,0 +1,64 @@ +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; +using System.Collections.Generic; + +#if UITEST +using Xamarin.Forms.Core.UITests; +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls.Issues +{ +#if UITEST + [Category(UITestCategories.ManualReview)] +#endif + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Github, 4090, "Talkback reports incorrect number of list items", PlatformAffected.Android)] + public class Issue4090 : TestContentPage // or TestMasterDetailPage, etc ... + { + protected override void Init() + { + // Initialize ui here instead of ctor + + List menuItems = new List + { + "Browse","About" + }; + + StackLayout stack = new StackLayout(); + + ListView ListViewMenu = new ListView(); + ListViewMenu.ItemsSource = menuItems; + + ListViewMenu.SelectedItem = menuItems[0]; + + Label label = new Label(); + label.Text = "When clicking 'Browse' or 'About', Talkback should report that the element is in list of 2 items"; + stack.Children.Add(label); + stack.Children.Add(ListViewMenu); + Content = stack; + + + BindingContext = new ViewModelIssue4090(); + } + } + + [Preserve(AllMembers = true)] + public class ViewModelIssue4090 + { + public ViewModelIssue4090() + { + + } + } + + [Preserve(AllMembers = true)] + public class ModelIssue4090 + { + public ModelIssue4090() + { + + } + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index 3e720123bd0..1a85e7cc89a 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -50,6 +50,7 @@ + @@ -2276,4 +2277,10 @@ MSBuild:UpdateDesignTimeXaml - \ No newline at end of file + + + Designer + MSBuild:UpdateDesignTimeXaml + + + diff --git a/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs b/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs index 30769379724..486ca45151b 100644 --- a/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs +++ b/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs @@ -359,7 +359,15 @@ void UpdateFooter() } if (footer == null) + { + if (_footerView.ChildCount == 0) + { + AListView nativeListView = Control; + nativeListView.RemoveFooterView(_adapter.FooterView); + } return; + } + if (_footerRenderer != null) _footerRenderer.SetElement(footer); @@ -391,7 +399,15 @@ void UpdateHeader() } if (header == null) + { + if (_headerView.ChildCount == 0) + { + AListView nativeListView = Control; + nativeListView.RemoveHeaderView(_adapter.HeaderView); + } return; + } + if (_headerRenderer != null) _headerRenderer.SetElement(header); From 7fd5b02c67bb3c67c2a9655c6aa0b1fe0cb7d158 Mon Sep 17 00:00:00 2001 From: Shane Neuville Date: Mon, 18 Jan 2021 13:27:55 -0600 Subject: [PATCH 2/2] - fix rebase --- .../Xamarin.Forms.Controls.Issues.Shared.projitems | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index 1a85e7cc89a..c00589fc89e 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -2277,10 +2277,4 @@ MSBuild:UpdateDesignTimeXaml - - - Designer - MSBuild:UpdateDesignTimeXaml - -