Xamarin表单:隐藏listview GroupHeader

时间:2017-01-25 16:27:58

标签: listview xamarin header xamarin.forms

有没有办法在Xamarin表单中隐藏listview的组头? 我试图在模板中设置标题高度,但它不起作用:

'class'

我只想在组之间显示分隔符。

2 个答案:

答案 0 :(得分:3)

是的!您需要在ListView上将HasUnevenRows设置为true。然后将标题模板设置为高度为0的ViewCell,其中包含空网格或其他元素。

 <ListView ItemsSource="{Binding GroupedMenuItems}" SelectedItem="{Binding SelectedMenuItem}" SeparatorVisibility="None" IsGroupingEnabled="true" HasUnevenRows="True">
      <ListView.GroupHeaderTemplate>
        <DataTemplate>
          <ViewCell Height="0">
              <Grid/>
          </ViewCell>
        </DataTemplate>
      </ListView.GroupHeaderTemplate>
      <ListView.ItemTemplate>
        <DataTemplate>
          <ImageCell Text="{Binding Title}" ImageSource="{Binding IconSource}" TextColor="#000000"/>
        </DataTemplate>
      </ListView.ItemTemplate>
    </ListView>

答案 1 :(得分:0)

SuavePirate的答案可能适用于Android,但需要对我进行微小的改动才能让它几乎在iOS上运行。我不得不将ViewCell高度从0更改为1.我知道,它很奇怪,但是,无论出于什么原因,它都拒绝以其他方式工作。

由于这个小变化,仍有一个像素高的线将组彼此分开,这不是理想的,但对于大多数用途来说足够好。我试图通过在ViewCell中放置StackLayout并将其BackgroundColor设置为&#34; White&#34;来隐藏该行。我还尝试在网格中放置一个BoxView并将其颜色设置为&#34; White&#34;,但这两种方法都没有成功隐藏1像素高线。

哦,好吧,它仍然比没有好。