TableView没有分隔符行xamarin形式

时间:2019-07-20 11:13:51

标签: xamarin xamarin.forms

我需要显示一堆设置,想知道是否可以在表格视图中隐藏行分隔符。我发现很少有解决方案,但都没有用。 我尝试在android中使用渲染器,并将控件分隔符设置为0或-1,但是什么也没有。

例如 https://forums.xamarin.com/discussion/76380/seperator-lines-in-tableview

是否可以隐藏分隔线?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:

MyTableView.cs

  public class MyTableView: TableView
{
    public static readonly BindableProperty SeperatorVisibleProperty = 
BindableProperty.Create("SeperatorVisible", typeof(SeparatorVisibility), 
typeof(MyTableView), SeparatorVisibility.Default);
    public SeparatorVisibility SeperatorVisible
    {
        get { return (SeparatorVisibility)GetValue(SeperatorVisibleProperty); }
        set { SetValue(SeperatorVisibleProperty, value); }
    }
}

Android中的MyTableViewRenderer.cs

 [assembly: ExportRenderer(typeof(MyTableView), typeof(MyTableViewRenderer))]
  namespace MyTableViewApp.Droid
  {
 public class MyTableViewRenderer: TableViewRenderer
 {      
    public MyTableViewRenderer(Context context) : base(context)
    {
    }
    protected override void OnElementChanged(ElementChangedEventArgs<TableView> e)
    {
        base.OnElementChanged(e);

        if (Control == null)
            return;

        //var listView = Control as global::Android.Widget.ListView;
        //listView.Divider = new ColorDrawable(Android.Graphics.Color.Transparent);
        //listView.DividerHeight = 0;

        var listView = Control as global::Android.Widget.ListView;
        listView.Divider.SetTint(Color.Transparent.GetHashCode());
        listView.SetHeaderDividersEnabled(false);
        listView.Divider = null;
        listView.DividerHeight = 0;
    }
}

}

示例效果: enter image description here