2016-06-29 10 views
1

Ist es möglich, den oberen blauen Rand (oder zumindest ändern ihre Farbe) von xamarins Table zu entfernen: http://imgur.com/btnlrMaXamarin Table oberen Rand entfernen

ich xamarins Tableview Dokumentation, sah aber ich dort keine Hilfe gefunden: https://developer.xamarin.com/guides/xamarin-forms/user-interface/tableview/

im Moment Mein Code sieht wie folgt aus:

public class UserProfilePushNotification : TableView 
    { 
     public UserProfilePushNotification(string text) 
      : base() 
     { 
      Intent = TableIntent.Data; 
      Root = new TableRoot 
      { 
       new TableSection 
       { 
        new SwitchCell 
        { 
         Text = text 
        }, 
        new TextCell() 
        { 
         Text = string.Empty 
        }, 
        new TextCell 
        { 
         Text = "Android Version: 1.2.1" 
        } 

       } 
      }; 

     } 
    } 
+0

@jzeferino keine Sorge ich Sie nicht vergessen haben:) Ich habe gerade nicht haben die Zeit, es zu testen, bevor Sie es als richtige Antwort markieren, oder etwas fragen, wenn es nicht funktioniert. Ich werde es nach der Arbeit testen. – Stralos

+0

Ok. Lass es mich dann wissen. – jzeferino

Antwort

1

ich in dieses Problem zu graben, und ich fand, dass TableView umgesetzt wird (in th e Standard-Renderer) als ListView. Die TableSection ist nur ein normaler Artikel in der Listview, der erste.

Wenn Sie die Title-Eigenschaft aus TableSection nicht verwenden (in diesem Fall verwenden Sie sie nicht), können Sie sie ausblenden.

Um dies zu tun, habe ich eine speziell für das TableView und versteckt das erste Element des ListView machen:

[assembly:ExportRenderer(typeof(Project.MenuTableView), typeof(Project.Droid.MenuTableViewRenderer))] 
namespace Project.Droid 
{ 
    public class MenuTableViewRenderer : TableViewRenderer 
    {  
     private bool _firstElementAdded = false; 

     protected override void OnElementChanged (ElementChangedEventArgs<TableView> e) 
     { 
      base.OnElementChanged (e); 

      if (Control == null) 
       return; 

      var listView = Control as Android.Widget.ListView;  
      listView.ChildViewAdded += (sender, args) => 
      {  
       if (!_firstElementAdded) 
       {  
        args.Child.Visibility = ViewStates.Gone;  
        _firstElementAdded = true;  
       } 

      }; 
      // Uncomment this if you want to remove all the dividers from the table. 
      //listView.DividerHeight = 0;  
     }  
    } 
} 
+0

Nun, deine Idee funktioniert! Aber leider entfernt es den oberen Rand, so dass ich eine topless Tischansicht habe. Gibt es eine Möglichkeit, die graue Grenze intakt zu lassen? Oder gibt es vielleicht einen anderen Weg von mir, um eine Datentabelle mit einer Swichzelle zu erreichen? – Stralos

+0

Welchen oberen Rand entfernt es? Es entfernt den blauen Balken. richtig? – jzeferino

+0

ja. Aber dann lässt es die Oberseite randlos: http://imgur.com/4HvsTtI – Stralos

Verwandte Themen