Xamarin表单:如何将边距添加到ListViewRenderer

时间:2018-10-08 08:45:23

标签: uitableview xamarin.forms xamarin.ios custom-controls custom-renderer

我想创建一个自定义的listview,为我的iOS解决方案提供一定的边距。我需要整个列表视图与设备屏幕边框保持一定距离。这是我尝试过的renderer类,但是DirectionalLayoutMargins没有给出任何空格。

[assembly: ExportRenderer(typeof(CustomListView), typeof(CustomListViewRenderer))]
public sealed class CustomListViewRenderer : ListViewRenderer
{
    private CustomListView listView;

    protected override void OnElementChanged(ElementChangedEventArgs<ListView> e)
    {
        base.OnElementChanged(e);
        this.Control.DirectionalLayoutMargins = new NSDirectionalEdgeInsets(
                    new nfloat(200),
                    new nfloat(200),
                    new nfloat(200),
                    new nfloat(200));
    }
}

我也尝试过LayoutMarginsConstraints,但是没有运气。

出于某些原因,我需要应用iOS特定的渲染器类的边距,而不是XAML或其他任何方法。有人知道如何从自定义列表视图渲染器创建边距吗?

1 个答案:

答案 0 :(得分:0)

您可以使用XAML代码中的以下代码来设置特定于平台的属性。

<ListView.Margin>
   <OnPlatform x:TypeArguments="Thickness">
   <On Platform="iOS" Value="0,20,0,0" />
   <On Platform="Android" Value="0,0,0,0" />
   </OnPlatform>