令我惊讶的是,在这个特定问题上我还没有在网上找到任何东西。我试图让listview分隔符插入为全宽。我已经找到了关于tableview的文档,here。但是我不清楚如何为列表视图执行此操作?我正在使用Xamarin Forms listview,尝试在iOS上完成此操作。我想我必须编写一个自定义渲染器,因为在listview的表单上没有(公开暴露的)属性。
这是我在列表视图中发生的好照片,尽管所显示的图像来自关于tableview的SO问题,而不是listview,但问题似乎是相同的。
答案 0 :(得分:7)
我设法使用自定义渲染器使列表视图分隔符变为全宽。
在iOS 11上测试。
[assembly: ExportRenderer(typeof(CustomListView), typeof(CustomListViewRenderer))]
namespace MasterDetailNav1.iOS.CustomRenderers
{
public class CustomListViewRenderer : ListViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<ListView> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.SeparatorInset = UIEdgeInsets.Zero;
}
}
}
}
答案 1 :(得分:3)
您是正确的,没有通过Xamarin表单ListView
(最终renders as a UITableView
on iOS)公开的属性来更改分隔符宽度。如果您想自己更改分隔符,则必须使用自定义渲染器并实现您在其他SO问题中找到的内容。
作为解决方法,您可以禁用分隔符可见性,然后添加1个高度的BoxView
来模拟全宽分隔符。
答案 2 :(得分:1)
现在它已随Xamarin Forms 3.0内置:
只需在SeparatorStyle
上将Default
设置为FullWidth
或ListView
(请注意,这是iOS专用平台,默认情况下Android会使用全角):
<ListView ios:ListView.SeparatorStyle="FullWidth"/>
答案 3 :(得分:-1)
分隔符全角:
<ListView ios:ListView.SeparatorStyle="FullWidth"/>
列表视图中的分隔符颜色属性
&当视图单元格中没有内容时删除分隔符
https://xamgirl.com/quick-trick-remove-extra-separator-line-in-listview-xamarin-forms-ios/