我不知道原因,但当我点按任何ListView
项时,其中的Button
模板会丢失背景颜色。
我在ViewCell
内使用默认ListView
。这是一个Xamarin.Forms错误吗?
我只在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>
答案 0 :(得分:1)
有一个老问题,我提出了类似的错误:https://bugzilla.xamarin.com/show_bug.cgi?id=27502。
但是,您提到的具体方案是iOS上的预期行为,也发生在本机(非Xamarin.Forms)项目中。请参阅评论here。您可以考虑使用UITableViewCellSelectionStyle
禁用单元格的UITableViewCellSelectionStyle.None
。 Here是单元格渲染器的示例。您可以在此处设置cell.SelectionStyle
。这将阻止细胞的灰色突出显示。如果您不希望它可以是一种解决方法来保持您的按钮颜色。
答案 1 :(得分:0)
我对此问题的解决方法如下。
<Grid>
<BoxView BackgroundColor="{Binding ButtonColor}"/>
<Button Text="{Binding ButtonOverviewText}" TextColor="White" BackgroundColor="Transparent" CommandParameter="{Binding .}" Clicked="Handle_Clicked"/>
</Grid>