mirror of
https://github.com/bitwarden/mobile.git
synced 2024-11-22 11:35:21 +01:00
testing list page perf
This commit is contained in:
parent
c4161ac5a5
commit
9cd4145217
@ -82,6 +82,7 @@
|
||||
<Compile Include="Pages\LoginNavigationPage.cs" />
|
||||
<Compile Include="Pages\MainPage.cs" />
|
||||
<Compile Include="Pages\SettingsEditFolderPage.cs" />
|
||||
<Compile Include="Pages\TestListPage.cs" />
|
||||
<Compile Include="Pages\SyncPage.cs" />
|
||||
<Compile Include="Pages\SettingsPage.cs" />
|
||||
<Compile Include="Pages\SettingsListFoldersPage.cs" />
|
||||
|
@ -126,7 +126,7 @@ namespace Bit.App.Pages
|
||||
|
||||
private void TouchIdCell_Tapped(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
Navigation.PushAsync(new TestListPage());
|
||||
}
|
||||
|
||||
private void FoldersCell_Tapped(object sender, EventArgs e)
|
||||
|
68
src/App/Pages/TestListPage.cs
Normal file
68
src/App/Pages/TestListPage.cs
Normal file
@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using Xamarin.Forms;
|
||||
using Bit.App.Utilities;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Bit.App.Pages
|
||||
{
|
||||
public class TestListPage : ContentPage
|
||||
{
|
||||
public TestListPage()
|
||||
{
|
||||
var textCell = new TextCell();
|
||||
textCell.SetBinding<Bar>(TextCell.TextProperty, s => s.BarName);
|
||||
|
||||
var listView = new ListView
|
||||
{
|
||||
IsGroupingEnabled = true,
|
||||
GroupDisplayBinding = new Binding("FooName"),
|
||||
ItemsSource = Items,
|
||||
ItemTemplate = new DataTemplate(() => textCell),
|
||||
HasUnevenRows = true,
|
||||
SeparatorColor = Color.FromHex("d2d6de")
|
||||
};
|
||||
|
||||
Content = listView;
|
||||
}
|
||||
|
||||
public ExtendedObservableCollection<Foo> Items { get; private set; } = new ExtendedObservableCollection<Foo>();
|
||||
|
||||
protected override void OnAppearing()
|
||||
{
|
||||
base.OnAppearing();
|
||||
|
||||
var foos = new List<Foo>();
|
||||
foos.Add(new Foo("Foo 1", MakeBars()));
|
||||
foos.Add(new Foo("Foo 2", MakeBars()));
|
||||
foos.Add(new Foo("Foo 3", MakeBars()));
|
||||
foos.Add(new Foo("Foo 4", MakeBars()));
|
||||
Items.Reset(foos);
|
||||
}
|
||||
|
||||
private IEnumerable<Bar> MakeBars()
|
||||
{
|
||||
var numbers = new List<Bar>();
|
||||
for(int i = 0; i < 100; i++)
|
||||
{
|
||||
numbers.Add(new Bar { BarName = i.ToString() });
|
||||
}
|
||||
return numbers;
|
||||
}
|
||||
|
||||
public class Foo : List<Bar>
|
||||
{
|
||||
public Foo(string name, IEnumerable<Bar> bars)
|
||||
{
|
||||
FooName = name;
|
||||
AddRange(bars);
|
||||
}
|
||||
|
||||
public string FooName { get; set; }
|
||||
}
|
||||
|
||||
public class Bar
|
||||
{
|
||||
public string BarName { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user