Xamarin ListView 备用列颜色

Posted

技术标签:

【中文标题】Xamarin ListView 备用列颜色【英文标题】:Xamarin ListView alternate column color 【发布时间】:2021-12-05 13:01:17 【问题描述】:

我需要更改我的 ListView 列颜色,使其看起来像这样。

我在 Google 上搜索任何帮助,发现我可以将 BoxView 与我的 Label 放在同一列中并为 BoxView 着色

我的结果:

如您所见,我在 BoxViews 上方有一条恼人的白线,我无法将其删除。我的问题是如何删除它们?我没有设置任何填充和边距,不知道是什么问题。

<ListView x:Name="ListView" ItemTapped="ListView_OnItemTapped" ItemsSource="Binding FilteredReports, Mode=TwoWay">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout>
                    <BoxView HeightRequest="1" Color="#EDEBE9" IsVisible="true"/>
                    <Grid HorizontalOptions="FillAndExpand">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <BoxView Color="#F7FAFC" Grid.Column="0"/>
                        <Label Grid.Column="0" FontSize="12" FontFamily="Roboto" TextColor="#162938" Text="Binding ClientPhone" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"/>
                        <Label Grid.Column="1" FontSize="12" FontFamily="Roboto" TextColor="#162938" Text="Binding OfficeName" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"/>
                        <BoxView Color="#F7FAFC" Grid.Column="2"/>
                        <Label Grid.Column="2" FontSize="12" FontFamily="Roboto" TextColor="#162938" Text="Binding BranchName" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"/>
                    </Grid>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

【问题讨论】:

【参考方案1】:

您使用的是StackLayout,默认情况下它的Spacing 属性值为6。

你应该把它设置为 0

<ViewCell>
                <StackLayout Spacing = "0" >
                    <BoxView HeightRequest="1" Color="#EDEBE9" IsVisible="true"/>
                    <Grid HorizontalOptions="FillAndExpand">
                        ....
                </StackLayout>
</ViewCell>

【讨论】:

以上是关于Xamarin ListView 备用列颜色的主要内容,如果未能解决你的问题,请参考以下文章

Mvvmcross xamarin 在 Listview 模板中形成按钮命令

设置列表视图项模板的背景颜色和列表背景颜色时,Xamarin Forms Listview 选定项背景颜色丢失

有没有办法在 Xamarin C# 中的 ListView 的列上方创建列名

Xamarin 列表视图选定项目更改图标颜色

Xamarin.Forms 中ListView 修改选中效果

从自定义列表 Xamarin 中设置所选列表视图项的背景颜色