Listview分隔符插入全宽

3 listview xamarin.ios xamarin xamarin.forms

所以令我惊讶的是,我没有在网络上找到任何关于这个特定问题的内容.我正在尝试将listview分隔符插入为全宽.我发现这个文档的实现代码如下,在这里.但是我不清楚如何为列表视图执行此操作?我正在使用Xamarin Forms listview,尝试在iOS上完成此操作.我想我必须编写一个自定义渲染器,因为在listview的表单上没有(公开暴露的)属性.

这是我在列表视图中发生的好照片,尽管显示的图像来自关于tableview的SO问题,而不是listview,但问题似乎是相同的.

在此输入图像描述

Ste*_*rne 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;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


hva*_*an3 6

现在它已内置于 Xamarin Forms 3.0 中:

https://learn.microsoft.com/en-us/xamarin/xamarin-forms/platform/platform-specifics/consuming/ios#setting-the-separator-style-on-a-listview

SeparatorStyle只需将Default或设置FullWidth为您的ListView(请注意,这是特定于 iOS 的平台,Android 默认情况下为全宽):

<ListView ios:ListView.SeparatorStyle="FullWidth"/>
Run Code Online (Sandbox Code Playgroud)


Tim*_*ers 5

答案取决于您使用的是 Xamarin Forms 3.0+ 还是早期版本。

Xamarin Forms 3.0 及更高版本

ListViewXamarin Forms 3.0 及更高版本上的A现在公开一个SeparatorStyle可以设置为SeparatorStyle枚举值的属性,或者DefaultFullWidth。这是通过此 PR提供的。

确保将该SeparatorStyle属性设置FullWidth为 以获得所需的效果。

Xamarin Forms 3.0 之前

您是正确的,没有通过 Xamarin Forms 公开的属性ListView(最终在 iOS 上呈现为 aUITableView)来更改分隔符宽度。如果您想自己更改分隔符,则必须求助于自定义渲染器并实现您在其他问题中找到的内容。

作为解决方法,您可以禁用分隔符可见性,然后添加BoxView1 高度来模拟全宽分隔符。