将GestureRecognizer添加到gridview中的行

Aka*_*min 7 xamarin xamarin.forms

我有一个网格,其中有3列包含2个按钮和1个标签.我想要的是为网格中的每一行添加一个Tap手势.我希望当用户点击网格行中的任何位置时触发click事件.有没有办法做到这一点?

我想让我的布局尽可能简单.在我使用多个stacklayout创建相同的网格并向父stacklayout添加手势之前.但是为了性能,我想使用网格视图来做到这一点.

hva*_*an3 11

我建议添加一个ContentView(不像a那么强StackLayout).让它覆盖整行并添加到那一行GestureRecognizer,如下所示:

<ContentView HorizontalOptions="FillAndExpand"
             VerticalOptions="FillAndExpand"
             Grid.Row="0"
             Grid.Column="0">
    <ContentView.GestureRecognizers>
        <TapGestureRecognizer Tapped="OnTapped"/>
    </ContentView.GestureRecognizers>
</ContentView>
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的帮助。我通过将内容视图放在网格行中并跨越我的列来解决了这个问题。 (2认同)

Aka*_*min 6

我通过在每行中添加内容视图和手势并跨越我的列覆盖整行来解决这个问题,因此点击行中的任何位置都会触发每行的点击事件.

<ContentView HorizontalOptions="FillAndExpand"
             VerticalOptions="FillAndExpand"
             Grid.Row="0"
             Grid.Column="0"
             Grid.ColumnSpan="3">
    <ContentView.GestureRecognizers>
        <TapGestureRecognizer Tapped="OnTapped"/>
    </ContentView.GestureRecognizers>
</ContentView>
Run Code Online (Sandbox Code Playgroud)

  • 是的,我明白您的意思,但是即使如此,将“ Grid.ColumnSpan =“ 3”`添加到其他正确答案实际上并没有添加任何内容。 (2认同)