【问题标题】:TableView no Separator line xamarin formsTableView 没有分隔线 xamarin 表单
【发布时间】:2019-07-23 15:27:04
【问题描述】:

我需要显示一堆设置并想知道是否可以在表格视图中隐藏行分隔符。我发现很少有解决方案在谷歌上搜索,但它们都不起作用。 我尝试在 android 中使用渲染器并将控制分隔符设置为 0 或 -1 但没有。

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

是否可以隐藏分隔线?

【问题讨论】:

标签: xamarin xamarin.forms


【解决方案1】:

你可以试试下面的代码:

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;
    }
}

}

示例效果:

【讨论】:

    猜你喜欢
    • 2015-01-13
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多