Xamarin android中的TableView节标题为空且可单击

Xamarin android中的TableView节标题为空且可单击,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我正在使用Xamarin.Forms,目前正在尝试创建一个没有节头的TableView。现在在iOS上,这看起来不错,因为节标题不可见或不可单击,但在Android上,标题为空白、可见和可单击 我试过这个 xaml中的代码- c代码# Content=newtableview { Root=新表根 { 新表节() { 新建TextCell{Text=“Login”,Command=Login}, 新建TextCell{Text=“注册”,Command=SignUp}, 新的TextCell

我正在使用
Xamarin.Forms
,目前正在尝试创建一个没有节头的
TableView
。现在在
iOS
上,这看起来不错,因为节标题不可见或不可单击,但在
Android
上,标题为空白、可见和可单击

我试过这个

xaml中的代码-


c代码#

Content=newtableview
{
Root=新表根
{
新表节()
{
新建TextCell{Text=“Login”,Command=Login},
新建TextCell{Text=“注册”,Command=SignUp},
新的TextCell{Text=“About”,Command=About},
},
},
};

为了抑制Android上的标题,我们使用了自定义渲染器。如果
Text
为空,它将通过删除所有子项、降低高度和删除所有填充来隐藏单元格

[程序集:ExportRenderer(typeof(TextCell)、typeof(ImprovedTextCellRenderer))]
名称空间解决方案
{
公共类改进的TextCellRenderer:TextCellRenderer
{
受保护的覆盖全局::Android.Views.View GetCellCore(单元格项,全局::Android.Views.View转换视图,视图组父级,上下文)
{
var view=base.GetCellCore(项、转换视图、父项、上下文)作为视图组;
if(String.IsNullOrEmpty((项作为TextCell.Text)){
view.Visibility=ViewStates.Gone;
而(view.ChildCount>0)
视图。移除视图(0);
视图。设置最小高度(0);
设置填充(0,0,0,0);
}
返回视图;
}
}
}

只要把这门课复制到你的Android项目中,你就可以了。

效果很好,谢谢Falko@Falko,TableView中有多少行?当我将此解决方案应用于我的TableView时,一些尚未可见的行具有空内容。我们如何为winPhone创建渲染器?