[Android] Do not show cell context actions if input views are long clicked (#544)

* Disable long click on cells if touch is on an input view

* remove redundant check
This commit is contained in:
adrianknight89 2016-11-18 13:46:34 -06:00 коммит произвёл Rui Marinho
Родитель 615e3db608
Коммит 4cb6e6de2b
3 изменённых файлов: 60 добавлений и 1 удалений

Просмотреть файл

@ -0,0 +1,55 @@
using System.Collections.Generic;
using Xamarin.Forms.CustomAttributes;
using Xamarin.Forms.Internals;
#if UITEST
using Xamarin.UITest;
using NUnit.Framework;
#endif
// Apply the default category of "Issues" to all of the tests in this assembly
// We use this as a catch-all for tests which haven't been individually categorized
#if UITEST
[assembly: NUnit.Framework.Category("Issues")]
#endif
namespace Xamarin.Forms.Controls.Issues
{
[Preserve(AllMembers = true)]
[Issue(IssueTracker.Bugzilla, 46630, "Issue Description", PlatformAffected.Android)]
public class Bugzilla46630 : TestContentPage
{
protected override void Init()
{
Content = new ListView
{
HasUnevenRows = true,
ItemsSource = new List<int> { 0 },
ItemTemplate = new DataTemplate(() => new ViewCell
{
Height = 300,
ContextActions =
{
new MenuItem {Text = "Action1"},
new MenuItem {Text = "Action2"}
},
View = new StackLayout
{
Orientation = StackOrientation.Vertical,
Spacing = 10,
HorizontalOptions = LayoutOptions.FillAndExpand,
Padding = 10,
Children =
{
new Label { HeightRequest = 50, BackgroundColor = Color.Coral, Text = "Long click each cell. Input views should not display context actions."},
new Editor { HeightRequest = 50, BackgroundColor = Color.Bisque, Text = "Editor"},
new Entry { HeightRequest = 50, BackgroundColor = Color.Aqua, Text = "Entry"},
new SearchBar { HeightRequest = 50, BackgroundColor = Color.CornflowerBlue, Text = "SearchBar"},
new Grid { HeightRequest = 50, BackgroundColor = Color.PaleVioletRed}
}
}
})
};
}
}
}

Просмотреть файл

@ -138,6 +138,7 @@
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla45743.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla45743.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla46494.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla46494.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla44476.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla44476.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla46630.cs" />
<Compile Include="$(MSBuildThisFileDirectory)CarouselAsync.cs" /> <Compile Include="$(MSBuildThisFileDirectory)CarouselAsync.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla34561.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla34561.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla34727.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla34727.cs" />
@ -602,4 +603,4 @@
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>
</Project> </Project>

Просмотреть файл

@ -214,6 +214,9 @@ namespace Xamarin.Forms.Platform.Android
bool HandleContextMode(AView view, int position) bool HandleContextMode(AView view, int position)
{ {
if (view is EditText || view is TextView || view is SearchView)
return false;
Cell cell = GetCellForPosition(position); Cell cell = GetCellForPosition(position);
if (cell == null) if (cell == null)