Here is my XAML. This ContentView
is inside an AbsoluteLayout
, but I don't think that matters. The idea is to have a frame with a list view, and a darkened background around it. I want to receive Overlay_Tapped
if the user clicks outside of the Frame
.
In iOS, SpinnerList_ItemSelected
is never called. Instead, Overlay_Tapped
is, even if the user clicks inside the Frame
. In Android everything is fine.
I tried setting InputTransparent="False"
in the Frame
, ListView
, and even the ViewCell
. Does not help. What helps is setting NumberOfTapsRequired="2"
in the TapGestureRecognizer
, but that's obviously not my intention.
Help?
<ContentView
x:Name="SpinnerOverlay"
AbsoluteLayout.LayoutBounds="0,0,1,1"
AbsoluteLayout.LayoutFlags="All"
IsVisible="False"
InputTransparent="False"
BackgroundColor="{x:Static engine:LmcColor.overlay}">
<Frame
OutlineColor="Black"
Padding="10,10,10,10"
BackgroundColor="White"
HorizontalOptions="Center"
VerticalOptions="Center">
<ListView
x:Name="SpinnerList"
HorizontalOptions="Center"
VerticalOptions="Center"
HasUnevenRows="False"
SeparatorColor="Transparent"
ItemSelected="SpinnerList_ItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ContentView
Padding="5,0,5,0"
BackgroundColor="{Binding BackColor}">
<Label
Text="{Binding ItemText}"
Style="{StaticResource StandardStyle}"/>
</ContentView>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Frame>
<ContentView.GestureRecognizers>
<TapGestureRecognizer Tapped="Overlay_Tapped"/>
</ContentView.GestureRecognizers>
</ContentView>