G.Mich
G.Mich

Reputation: 1666

ListView Tapped removes button background color on data template Xamarin.Forms

I don't know why, but when I tap any ListView item, the Button inside it's template loses the background color.

I use default ViewCell inside ListView. Is this a Xamarin.Forms bug?

I have this problem only on iOS.

    <ListView x:Name="lv" Grid.Row="2" HasUnevenRows="true" BackgroundColor="White" ItemTapped="OnItemTapped">
 <ListView.ItemTemplate>
      <DataTemplate>
       <ViewCell>               
       <StackLayout Padding="16" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" BackgroundColor="{Binding .,Converter={StaticResource IndexColorConverter}">

        <StackLayout VerticalOptions="Center">
                  <Label Text="{Binding Auditorium}" FontSize="18" TextColor="Black"/>
                  <ContentView Padding="0,-5,0,0">
                         <Label Text="{Binding Title}" FontSize="16" TextColor="Black"/>        
                  </ContentView>
      <StackLayout Orientation="Horizontal">
         <Button WidthRequest="100" Text="{Binding ButtonOverviewText}" TextColor="White" BackgroundColor="{Binding ButtonColor}" CommandParameter="{Binding .}" Clicked="Handle_Clicked"/>
         <Button WidthRequest="100" Text="{Binding ButtonOverviewText}" TextColor="White" BackgroundColor="{Binding ButtonColor}" CommandParameter="{Binding .}" Clicked="Handle_Clicked" />
   </StackLayout>
  </StackLayout>

   <Label Text="{Binding Coordinator}" FontSize="14" TextColor="Gray"/>

   </StackLayout>
   </ViewCell>
  </DataTemplate>
</ListView.ItemTemplate>
</ListView>

button colors removed

Upvotes: 1

Views: 808

Answers (2)

G.Mich
G.Mich

Reputation: 1666

My workaround for this problem is the following.

<Grid>
<BoxView BackgroundColor="{Binding ButtonColor}"/>
<Button Text="{Binding ButtonOverviewText}" TextColor="White" BackgroundColor="Transparent" CommandParameter="{Binding .}" Clicked="Handle_Clicked"/>
</Grid>

Upvotes: 0

therealjohn
therealjohn

Reputation: 2398

There was an old issue that I filed fora similar bug: https://bugzilla.xamarin.com/show_bug.cgi?id=27502.

However, the specific scenario you mention is expected behavior on iOS and happens in native (non-Xamarin.Forms) projects too. See the comment here. You might consider disabling the UITableViewCellSelectionStyle of your cells with UITableViewCellSelectionStyle.None. Here is an example of a cell renderer. You can set the cell.SelectionStyle here. This would stop the gray highlight of the cell. If you don't want that it could be a workaround to keep your button colors.

Upvotes: 1

Related Questions