如何删除Xamarin.Forms中ListView内ViewCell组件的边框?
Xamarin.Forms移除ListView中ViewCell边框的解决方案
问题对应效果如下图:
- 第一步先配置ListView基础属性,关闭ListView自带的默认分隔符,代码示例如下:
<ListView SeparatorVisibility="None" SeparatorHeight="0" <!--其余ListView属性照常配置--> > <!--你的ItemTemplate及ViewCell内容--> </ListView>
- 排查自定义样式冲突:检查你是否给ViewCell、内部布局设置过
BorderColor、BorderWidth属性,或是引用了自带边框的全局样式,如有对应配置直接删除即可。 - Android平台专属适配:如果完成上述配置后Android端仍有残留边框、点击阴影,可在ViewCell的根布局中将
BackgroundColor设置为与页面背景一致的颜色;也可在Android项目对应列表页的Activity主题中添加属性<item name="android:listSelector">@android:color/transparent</item>,移除列表默认选中样式。 - iOS平台专属适配:如果iOS端仍有残留分隔线,可通过自定义ViewCellRenderer实现边框移除,核心代码如下:
protected override void OnElementChanged(ElementChangedEventArgs<ViewCell> e) { base.OnElementChanged(e); if (Control != null) { Control.SeparatorInset = UIKit.UIEdgeInsets.Zero; Control.LayoutMargins = UIKit.UIEdgeInsets.Zero; Control.SelectionStyle = UIKit.UITableViewCellSelectionStyle.None; } }
- 补充方案:如果不想做多平台适配,可直接使用
CollectionView替代ListView,它是Xamarin.Forms官方后续推荐的列表控件,默认没有多余的分隔线和边框,自定义灵活度更高。
内容的提问来源于stack exchange,提问作者Рома
相关产品推荐
相关产品推荐


