Xamarin Forms ListView中的分隔线仅在iOS上的项目之间

gdrx4gfi  于 2022-12-07  发布在  iOS
关注(0)|答案(1)|浏览(145)

我有一个带有组头的Xamarin窗体列表视图:

<ListView x:Name="listView"
                      ios:ListView.SeparatorStyle="FullWidth"
                      AbsoluteLayout.LayoutBounds="0,0,1,1"
                      AbsoluteLayout.LayoutFlags="All"
                      ItemsSource="{Binding Items}"
                      IsGroupingEnabled="true"
                      SeparatorVisibility="Default" 
                      IsPullToRefreshEnabled="False"
                      SeparatorColor="Red"
                      SelectionMode="None"
                      Footer=""
                      BackgroundColor="Transparent">
                <ListView.GroupHeaderTemplate>
                    <DataTemplate>
                        <TextCell Text="Header Cell"/>
                    </DataTemplate>
                </ListView.GroupHeaderTemplate>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <TextCell Text="Item Cell"/>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

在iOS上,分隔线(红色)仅在项目之间可见,而在标题和项目之间不可见:

在Android上,这条线也位于Header和items之间:

我只找到了一些建议,在iOS上删除分隔线(设置SeparatorColor透明)。
如何在iOS上获得Android行为?

eqqqjvef

eqqqjvef1#

你可以使用BoxView来达到你想要的效果,修改你的代码如下:

<ListView x:Name="listView"
    AbsoluteLayout.LayoutBounds="0,0,1,1"
    AbsoluteLayout.LayoutFlags="All"
    ItemsSource="{Binding Items}"
    IsGroupingEnabled="True"
    SeparatorVisibility="None"
    SelectionMode="None"
    Footer=""
    BackgroundColor="Transparent">
    <ListView.GroupHeaderTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout>
                    <Label Text="Header Cell" Margin="0,10,0,0"/>
                    <BoxView HeightRequest="0.5" Color="Red" HorizontalOptions="FillAndExpand" Margin="0,8,0,0"/>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.GroupHeaderTemplate>
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout>
                    <Label Text="Item Cell" Margin="0,10,0,0"/>
                    <BoxView HeightRequest="0.5" Color="Red" HorizontalOptions="FillAndExpand" Margin="0,5,0,0"/>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

相关问题