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..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 @@ -50,6 +50,7 @@ + @@ -2276,4 +2277,4 @@ MSBuild:UpdateDesignTimeXaml - \ No newline at end of file + 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);