Added listview renderer that implements margins as contentinset. Added margin to vault listview.

This commit is contained in:
Kyle Spearrin 2016-06-15 23:39:49 -04:00
parent 527fc00e0a
commit ecc15363b5
4 changed files with 44 additions and 2 deletions

View File

@ -44,6 +44,7 @@ namespace Bit.App.Pages
var listView = new ListView
{
Margin = new Thickness(0, 0, -15, 0),
IsGroupingEnabled = true,
ItemsSource = Folders,
HasUnevenRows = true,

View File

@ -35,8 +35,7 @@ namespace Bit.iOS.Controls
detailDisclosureButton.SetImage(UIImage.FromBundle(extendedCell.DisclousureImage), UIControlState.Selected);
}
detailDisclosureButton.Frame = new CGRect(0f, 0f, 40f, 40f);
detailDisclosureButton.HorizontalAlignment = UIControlContentHorizontalAlignment.Right;
detailDisclosureButton.Frame = new CGRect(0f, 0f, 50f, 40f);
detailDisclosureButton.TouchUpInside += (sender, e) =>
{
extendedCell.OnDisclousureTapped();

View File

@ -0,0 +1,41 @@
using System;
using System.ComponentModel;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: ExportRenderer(typeof(ListView), typeof(Bit.iOS.Controls.ListViewRenderer))]
namespace Bit.iOS.Controls
{
public class ListViewRenderer : Xamarin.Forms.Platform.iOS.ListViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<ListView> e)
{
base.OnElementChanged(e);
var view = e.NewElement as ListView;
if(view != null)
{
SetMargin(view);
}
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if(e.PropertyName == View.MarginProperty.PropertyName)
{
SetMargin(Element);
}
}
private void SetMargin(ListView view)
{
Control.ContentInset = new UIEdgeInsets(
new nfloat(view.Margin.Top),
new nfloat(view.Margin.Left),
new nfloat(view.Margin.Bottom),
new nfloat(view.Margin.Right));
}
}
}

View File

@ -109,6 +109,7 @@
<ItemGroup>
<Compile Include="Controls\ContentPageRenderer.cs" />
<Compile Include="Controls\ExtendedSwitchCellRenderer.cs" />
<Compile Include="Controls\ListViewRenderer.cs" />
<Compile Include="Controls\ExtendedViewCellRenderer.cs" />
<Compile Include="Controls\ExtendedTextCellRenderer.cs" />
<Compile Include="Controls\ExtendedTableViewRenderer.cs" />