diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue15305.xaml b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue15305.xaml deleted file mode 100644 index 048e31f2763..00000000000 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue15305.xaml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue15305.xaml.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue15305.xaml.cs deleted file mode 100644 index 8c3f1367d8a..00000000000 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue15305.xaml.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System.Collections.ObjectModel; -using Xamarin.Forms.CustomAttributes; -using Xamarin.Forms.Internals; -using Xamarin.Forms.Xaml; - -#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 -#if APP - [XamlCompilation(XamlCompilationOptions.Compile)] -#endif - [Preserve(AllMembers = true)] - [Issue(IssueTracker.Github, 15305, "[Android] TalkBack always considers ListView's header and footer for indexing/counting", PlatformAffected.Android)] - public partial class Issue15305 : TestContentPage - { - public Issue15305() - { -#if APP - InitializeComponent(); -#endif - } - - protected override void Init() - { - BindingContext = new ViewModelIssue15305(); - } - } - - [Preserve(AllMembers = true)] - public class ViewModelIssue15305 - { - public ViewModelIssue15305() - { - Items = new ObservableCollection() { "first item", "second item", }; - } - - public ObservableCollection Items { get; } - } -} \ 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 36e6cb161b6..0a236a0826d 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 @@ -1864,9 +1864,6 @@ - - Issue15305.xaml - MyCollectionView.xaml Code @@ -2425,9 +2422,6 @@ MSBuild:UpdateDesignTimeXaml - - MSBuild:UpdateDesignTimeXaml - Designer MSBuild:UpdateDesignTimeXaml diff --git a/Xamarin.Forms.Platform.Android/CellAdapter.cs b/Xamarin.Forms.Platform.Android/CellAdapter.cs index a8801256ee3..1355f758de1 100644 --- a/Xamarin.Forms.Platform.Android/CellAdapter.cs +++ b/Xamarin.Forms.Platform.Android/CellAdapter.cs @@ -132,12 +132,13 @@ bool AActionMode.ICallback.OnPrepareActionMode(AActionMode mode, IMenu menu) public void OnItemClick(AdapterView parent, AView view, int position, long id) { - var listView = parent as AListView; - if (listView != null) - position -= listView.HeaderViewsCount; - if (_actionMode != null || _supportActionMode != null) + { + var listView = parent as AListView; + if (listView != null) + position -= listView.HeaderViewsCount; HandleContextMode(view, position); + } else HandleItemClick(parent, view, position, id); } diff --git a/Xamarin.Forms.Platform.Android/Renderers/ListViewAdapter.cs b/Xamarin.Forms.Platform.Android/Renderers/ListViewAdapter.cs index 2173ce4dc74..26c2cc2ef73 100644 --- a/Xamarin.Forms.Platform.Android/Renderers/ListViewAdapter.cs +++ b/Xamarin.Forms.Platform.Android/Renderers/ListViewAdapter.cs @@ -481,6 +481,9 @@ protected override void HandleItemClick(AdapterView parent, AView view, int posi cell = (Cell)(cellOwner as INativeElementView)?.Element; } + // All our ListView's have called AddHeaderView. This effectively becomes index 0, so our index 0 is index 1 to the listView. + position--; + if (position < 0 || position >= Count) return; diff --git a/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs b/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs index 6992abadd5b..2bad29eb08e 100644 --- a/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs +++ b/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs @@ -365,14 +365,7 @@ void UpdateFooter() } if (footer == null) - { - if (_footerView.ChildCount == 0) - { - AListView nativeListView = Control; - nativeListView.RemoveFooterView(_adapter.FooterView); - } return; - } if (_footerRenderer != null) _footerRenderer.SetElement(footer); @@ -404,14 +397,7 @@ void UpdateHeader() } if (header == null) - { - if (_headerView.ChildCount == 0) - { - AListView nativeListView = Control; - nativeListView.RemoveHeaderView(_adapter.HeaderView); - } return; - } if (_headerRenderer != null) _headerRenderer.SetElement(header);