我的ListView
设置如下:
<ListView HasUnevenRows="true" BackgroundColor="Gray">
<ListView.Header>
<StackLayout Padding="20,35,20,10" Orientation="Horizontal" HorizontalOptions="FillAndExpand">
<Label FontSize="13" TextColor="Gray" Text="Header text here"/>
</StackLayout>
</ListView.Header>
<ListView.ItemTemplate>
<ListView.DataTemplate>
<TextCell Text="{Binding CategoryName}" Detail="{Binding Count}">
</ListView.DataTemplate>
</ListView.ItemTemplate>
</ListView>
我有iOS渲染器并设置以下内容:
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
var cell = base.GetCell(item, reusableCell, tv);
cell.BackgroundColor = UIColor.Red;
return cell;
}
不知怎的,我的整个ListView
正在使用我为listview设置的Gray
背景。我想要发生的是Gray
的{{1}}颜色背景(这意味着标题部分将具有灰色背景)并且ListView
具有Red
颜色背景。我是否设置了错误的属性以获得TextCell
的所需背景?
答案 0 :(得分:2)
您的自定义渲染器实际上并未返回单元格,因此您对BackgroundColor
所做的更改无法完成。
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
var cell = base.GetCell(item, reusableCell, tv);
cell.ContentView.BackgroundColor = UIColor.Red;
return cell;
}
更新:您应该设置cell.ContentView.BackgroundColor
。
答案 1 :(得分:0)
在Grid / StackLayout中添加文本单元并指定BackgroundColor="Red"
直接在xaml中进行相应的布局。您不需要为此编写自定义渲染器。