2017-11-28 7 views
0

저는 xamarin 폼 앱을 작성하고 있습니다.Xamarin은 ContextActions 및 GestureRecognizer로 안드로이드리스트 뷰를 구성합니다.

당신이 볼 수 있듯이
<ViewCell> 
    <ViewCell.ContextActions> 
     <MenuItem Clicked="Btn_delete_Clicked" CommandParameter="{Binding .}" Text="Удалить" IsDestructive="True" /> 
      </ViewCell.ContextActions> 
       <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*" /> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="Auto" /> 
          <RowDefinition Height="Auto" /> 
         </Grid.RowDefinitions> 
          <Image Source="{Binding Image}" Grid.Row="0" Grid.Column="0" Margin="5" VerticalOptions="Center" 
            HorizontalOptions="Center" Aspect="AspectFit" WidthRequest="170" HeightRequest="170" > 
           <Image.GestureRecognizers> 
            <TapGestureRecognizer Tapped="Btn_fullscr_Clicked" /> 
           </Image.GestureRecognizers> 
          </Image> 

          <Entry x:Name="EditTextPhoto" Placeholder="[Комментарий отсутствует]" Grid.Row="1" Grid.Column="0" 
            Margin="5" VerticalOptions="FillAndExpand" HorizontalOptions="Fill" FontSize="14" 
            Text="{Binding Comment}" BackgroundColor="#44104e8b" IsEnabled="{Binding IsPreview}" TextColor="Black" HorizontalTextAlignment="Center" /> 
         </Grid> 
        </ViewCell> 

, 내가 가진 ContextActions 내 이미지에 대한 TapGestureRecognizer : 나는 정의 셀 (XAML)와 ListView에 있습니다. android에 버그가 있습니다. 뷰 셀을 클릭하면 컨텍스트 작용이 나타납니다. ContextAction은 알고있는 것처럼 길게 누르는 경우에만 수행해야합니다. 그러나 Image에서 제스처 인식기를 제거하면 모든 것이 잘 동작합니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까? 미리 감사드립니다.

+0

[Xamarin.form (PCL)] (https://stackoverflow.com/questions/47546002/xamarin-forms-how-to-add-image-list-inside-listview) NativeListView 렌더러 사용 –

답변

0

마지막으로이 문제에 대한 해결책을 찾았습니다. 내 이미지가 있고 삭제 된 tapgesturerecognizer와 같은 행에 투명한 버튼을 추가했습니다. 따라서 최종 코드는

<ViewCell> 
    <ViewCell.ContextActions> 
     <MenuItem Clicked="Btn_delete_Clicked" CommandParameter="{Binding .}" Text="Удалить" IsDestructive="True" /> 
    </ViewCell.ContextActions> 
     <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*" /> 
       </Grid.ColumnDefinitions> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto" /> 
        <RowDefinition Height="Auto" /> 
       </Grid.RowDefinitions> 
       <Image Source="{Binding Image}" Grid.Row="0" Grid.Column="0" Margin="5" VerticalOptions="Center" 
            HorizontalOptions="Center" Aspect="AspectFit" WidthRequest="170"> 
       </Image> 
       <Button Grid.Row="0" Grid.Column="0" HorizontalOptions="Center" Clicked="Btn_fullscr_Clicked" 
            WidthRequest="170" VerticalOptions="FillAndExpand" BackgroundColor="Transparent" BorderColor="Transparent" /> 
       <Entry x:Name="EditTextPhoto" Placeholder="[Комментарий отсутствует]" Grid.Row="1" Grid.Column="0" 
            Margin="5" VerticalOptions="FillAndExpand" HorizontalOptions="Fill" FontSize="14" 
            Text="{Binding Comment}" IsEnabled="{Binding IsPreview}" TextColor="Black" HorizontalTextAlignment="Center" /> 
     </Grid> 
    </ViewCell> 

향후 누군가에게 도움이되기를 바랍니다.